Topik ini menjawab pertanyaan umum mengenai integrasi dengan Android dan menyediakan solusi.
Apa perbedaan antara handleEvent dan interceptEvent untuk JavaScript API kustom?
Jawaban: Untuk mendengarkan event yang ditangani oleh container, tambahkan JavaScript API kustom ke handleEvent dan kembalikan nilai true. Mengembalikan true menghentikan propagasi event, sedangkan mengembalikan false memungkinkan event tersebut diteruskan ke plugin lain. Untuk mendengarkan event container lainnya, tambahkan JavaScript API kustom ke interceptEvent.
Mengapa sebuah event harus ditambahkan di onPrepare meskipun sudah ditambahkan sebelumnya untuk JavaScript API kustom?
Jawaban: Saat membuat JavaScript API kustom, Anda menambahkan event menggunakan config.setEvents("event");. Namun, plugin container menggunakan lazy loading dan hanya dimuat saat halaman dibuat. Pemanggilan eksternal config.setEvents menyuntikkan nama-nama event yang akan didengarkan, tetapi objek plugin yang sesuai belum dibuat hingga terjadi pemanggilan JavaScript (JS). Pengiriman event ke plugin yang telah dibuat mengacu pada event yang didefinisikan dalam metode onPrepare plugin tersebut. Oleh karena itu, pastikan event dalam config.setEvents("event") sesuai dengan event dalam metode internal onPrepare.
Apa perbedaan antara page, session, dan service dalam pendaftaran plugin JavaScript API kustom?
Jawaban: Page berkorespondensi dengan WebView, session berkorespondensi dengan objek App dari aplikasi mPaaS, sedangkan service merupakan singleton global.
Jika Anda mendaftarkan plugin pada tingkat page, instans plugin baru dibuat setiap kali WebView dibuat, dan metode onRelease plugin dipanggil saat WebView dihapus.
Jika Anda mendaftarkan plugin pada tingkat session, plugin baru dibuat setiap kali objek App dibuat.
Jika Anda mendaftarkan plugin pada tingkat service, plugin hanya dibuat sekali, yaitu saat container pertama kali dibuka.
Apakah verifikasi signature memvalidasi sumber paket offline atau melakukan pemeriksaan integritas?
Jawaban: Di platform penerbitan paket offline, jika Anda mengonfigurasi kunci privat, platform menyertakan informasi signature dalam file AMR yang didistribusikan. Signature tersebut merupakan ciphertext yang dihasilkan dengan mengenkripsi nilai hash paket offline menggunakan kunci privat. Selama verifikasi signature, kunci publik yang telah dikonfigurasi sebelumnya dalam proyek Anda digunakan untuk memverifikasi signature tersebut. Proses ini mendekripsi ciphertext untuk mendapatkan nilai hash, lalu membandingkannya dengan nilai hash paket offline yang dihitung secara lokal. Jika nilainya sesuai, signature dianggap valid. Proses ini menjamin integritas konten sekaligus keaslian sumber paket offline.
Apa penyebab progress bar tetap terlihat saat membuka paket offline?
Jawaban: Hal ini dapat terjadi jika sumber daya offline gagal dimuat, sehingga halaman beralih ke mode online. Dalam mode fallback, container H5 memaksa progress bar tetap terlihat. Anda tidak dapat menyembunyikan progress bar dengan mengatur parameter startup SHOW_PROGRESS.