全部产品
Search
文档中心

Mobile Platform as a Service:Gunakan MPH5OpenFileChooserProvider

更新时间:Jan 27, 2026

Skenario

Jika perilaku pemilihan file default dari tag <input type="file"/> dalam paket offline HTML5 tidak memenuhi kebutuhan Anda, Anda dapat mengimplementasikan fitur pemilihan gambar kustom. Untuk menyesuaikan gaya pemilihan gambar, mengizinkan pemilihan beberapa gambar, atau menangani izin secara dinamis, gunakan MPH5OpenFileChooserProvider.

Implementasi

  1. Daftarkan MPH5OpenFileChooserProvider dalam callback setelah inisialisasi mPaaS selesai.

    H5Utils.setProvider(MPH5OpenFileChooserProvider.class.getName(), 
                        new MPH5OpenFileChooserProvider() {
                            @Override
                            public boolean needIntercept(Activity activity, ValueCallback valueCallback, boolean b, APFileChooserParams apFileChooserParams) {
                                // Jika fitur pemilihan gambar kustom tidak diperlukan, kembalikan false untuk menghindari mengintersepsi kontainer HTML5. Secara default, kontainer tidak diintersepsi.
                                // Untuk menggunakan fitur pemilihan gambar kustom, intersepsi kontainer HTML5 dan kembalikan true.
                                return true;
                            }
    
                            @Override
                            public void openFileChooser(Activity activity, ValueCallback valueCallback, boolean b, APFileChooserParams apFileChooserParams) {
                                // Dapatkan URI yang valid dan kirimkan ke antarmuka depan.
                                // Metode ini harus dipanggil. Jika tidak, callback klik berikutnya tidak akan dieksekusi.
                                // 1. Gunakan intent untuk membuka Activity yang memanggil album sistem atau kamera.
                                // 2. Ambil gambar yang dipilih.
                                // 3. Tutup halaman dan kirimkan gambar ke antarmuka depan melalui valueCallback.
                                valueCallback.onReceiveValue(xx);
                            }
                        });
    Penting

    Fungsi valueCallback.onReceiveValue(xx) harus dipanggil. Jika tidak, callback klik berikutnya tidak akan dieksekusi.

  2. Pilih dan proses gambar dalam fungsi callback openFileChooser.

    1. Gunakan intent untuk membuka Activity dan mengakses album foto sistem atau kamera.

    2. Ambil gambar yang dipilih.

    3. Tutup Activity dan kirimkan gambar ke antarmuka depan menggunakan valueCallback.

Solusi referensi

Solusi 1

  1. Daftarkan pendengar broadcast dalam metode callback openFileChooser.

  2. Dalam metode openFileChooser, gunakan Intent untuk menavigasi ke Activity kustom.

  3. Panggil SDK kamera atau pemilihan gambar sistem. Anda dapat menambahkan ekstensi, seperti fitur pemotongan gambar.

  4. Gunakan Activity pemilihan gambar untuk mengambil gambar yang dipilih secara final. Kirim broadcast ke pendengar broadcast untuk callback openFileChooser, lalu tutup Activity.

  5. Kirim nilai ke antarmuka depan menggunakan metode valueCallback.onReceiveValue(xx) dari komponen WebView.

Solusi 2

  1. Dalam metode openFileChooser, gunakan Intent untuk menavigasi ke Activity dan kirimkan valueCallback ke Activity tersebut.

  2. Panggil SDK kamera atau pemilihan gambar sistem. Anda dapat menambahkan ekstensi, seperti fitur pemotongan gambar.

  3. Kirim data ke antarmuka depan melalui metode valueCallback.onReceiveValue(xx) dari WebView.

  4. Tutup Activity.