denis156 / app-manager
Inspect installed packages, retrieve app metadata (icons/names), and launch applications on the device.
Package info
github.com/denis156/app-manager
Language:Kotlin
Type:nativephp-plugin
pkg:composer/denis156/app-manager
Requires
- php: ^8.2
- nativephp/mobile: ^3.0
Requires (Dev)
- pestphp/pest: ^3.0
README
Plugin utilitas untuk NativePHP yang memungkinkan aplikasi Anda berinteraksi dengan aplikasi lain yang terinstal di perangkat Android. Dapatkan daftar aplikasi, ambil metadata aplikasi (ikon/nama), hingga meluncurkan aplikasi lain secara langsung.
Caution
CATATAN KERAS (IMPORTANT NOTE): Plugin ini memberikan akses untuk melihat daftar aplikasi yang terinstal dan menjalankan aplikasi lain di perangkat. Penggunaan plugin ini sepenuhnya merupakan tanggung jawab pengguna/pengembang yang mengintegrasikannya. Pengembang asli (denis156) TIDAK BERTANGGUNG JAWAB atas segala penyalahgunaan plugin ini untuk tujuan yang melanggar hukum atau merugikan pihak lain.
Fitur Unggulan
- App Discovery: Mendapatkan daftar lengkap semua aplikasi yang terinstal yang memiliki launcher (dapat dibuka oleh user).
- Rich Metadata Extraction: Mengambil Ikon Aplikasi (Base64/PNG), Nama Label, dan Nama Paket (
com.whatsapp, dll). - Deep Integration: Mengecek apakah aplikasi tertentu (misal: WhatsApp atau Dana) terinstal di HP pengguna.
- Remote Launching: Membuka/menjalankan aplikasi lain secara terprogram dari dalam aplikasi Anda.
- V3 Bridge Standards: Kompatibel penuh dengan arsitektur modular NativePHP Mobile v3.
Instalasi
Tambahkan plugin ke proyek Laravel Anda melalui Composer:
composer require denis156/app-manager
Daftarkan plugin di proyek NativePHP Anda:
php artisan native:plugin:register denis156/app-manager
Jalankan build untuk memasukkan fungsionalitas native:
php artisan native:run android
Penggunaan
Sisi PHP (Laravel/Inertia/Livewire)
Gunakan facade AppManager untuk berinteraksi dengan aplikasi di perangkat:
use Denis156\AppManager\Facades\AppManager; // 1. Mendapatkan daftar semua aplikasi yang terinstal $apps = AppManager::getInstalledApps(); // Hasil berupa array: [['label' => 'WhatsApp', 'package' => 'com.whatsapp', 'icon_base64' => '...'], ...] // 2. Mengecek apakah aplikasi terinstal if (AppManager::isInstalled('com.whatsapp')) { // Lakukan sesuatu } // 3. Mengambil info spesifik (Nama & Ikon) $info = AppManager::getAppInfo('com.whatsapp'); // 4. Meluncurkan aplikasi lain AppManager::launchApp('com.whatsapp');
Sisi JavaScript (Vue/React/Inertia)
Anda juga bisa memanggil fungsi native langsung dari frontend:
import { appManager } from '@denis156/app-manager'; // Ambil daftar aplikasi const apps = await appManager.getInstalledApps(); // Jalankan aplikasi const success = await appManager.launchApp('com.whatsapp'); // Cek instalasi const isInstalled = await appManager.isInstalled('com.whatsapp');
Keamanan & Kebijakan Google Play
Untuk Android 11+ (API 30+), daftar aplikasi yang terinstal dianggap informasi sensitif.
- Jika Anda mempublikasikan aplikasi ke Google Play Store, Anda harus menyertakan izin
QUERY_ALL_PACKAGESdi manifest Android dan memberikan alasan yang kuat kepada Google mengapa aplikasi Anda membutuhkan akses ini.
Struktur Direktori (Standar v3)
packages/denis156/app-manager/
├── nativephp.json # Manifest Plugin & Bridge Functions
├── src/ # Kode PHP (Service Provider, Facade)
└── resources/
├── android/src/ # Kode Kotlin (App discovery implementation)
└── boost/guidelines/ # Instruksi spesifik untuk AI assistants