全部产品
Search
文档中心

Mobile Platform as a Service:Kelola paket offline

更新时间:Jul 02, 2025

Operasi manajemen paket offline meliputi: Pra-muat Aplikasi HTML5, Gunakan Paket Sumber Daya Global, Perbarui Aplikasi HTML5, Unduh Aplikasi HTML5, Instal Aplikasi HTML5, Dapatkan Informasi Aplikasi, Verifikasi Tanda Tangan Keamanan, dan Hapus Informasi Aplikasi Lokal.

Prasyarat

Pra-muat aplikasi HTML5

Secara umum, paket offline mungkin belum diunduh ketika aplikasi HTML5 dibuka untuk pertama kalinya. Dalam hal ini, Anda perlu membuka aplikasi menggunakan URL cadangan.

Pra-muat aplikasi HTML5 melibatkan pra-instalasi aplikasi HTML5 yang tersedia dalam paket instalasi yang dirilis oleh klien. Saat membuka aplikasi yang sudah diinstal sebelumnya untuk pertama kali, pengguna dapat langsung menggunakan sumber daya paket offline, yang meningkatkan pengalaman pengguna.

Catatan

Kami merekomendasikan agar Anda hanya memprainstal aplikasi HTML5 inti dan tidak memprainstal aplikasi dengan tingkat penggunaan rendah.

Untuk pra-muat aplikasi HTML5, Anda perlu menyelesaikan langkah-langkah berikut:

  1. Unduh file konfigurasi aplikasi HTML5 .json dan paket offline yang diperlukan dari backend rilis aplikasi HTML5.

  2. Tambahkan file .json dan paket offline ke direktori asset proyek.

  3. Saat aplikasi dimulai, panggil kode pra-muat untuk menginstal aplikasi. Contoh kode adalah sebagai berikut:

    MPNebula.loadOfflineNebula("h5_json.json", new MPNebulaOfflineInfo("90000000_1.0.0.6.amr", "90000000", "1.0.0.6"));
    Catatan

    • Metode ini adalah metode pemanggilan blok. Jangan panggil metode paket offline yang disematkan pada utas utama.

    • Metode ini hanya dapat dipanggil sekali. Jika dipanggil beberapa kali, hanya panggilan pertama yang valid. Oleh karena itu, Anda perlu memasukkan informasi tentang semua paket offline yang diperlukan sekaligus.

    • Jika beberapa paket amr disematkan, pastikan file tersebut sudah ada. Jika tidak ada, paket offline lain yang disematkan akan gagal.

Gunakan paket sumber daya global

Paket sumber daya global Nebula mengatasi redundansi yang disebabkan oleh beberapa aplikasi HTML5 yang menggunakan sumber daya yang sama. Sebagai contoh, aplikasi React menggunakan kode framework ReactJS. Anda dapat menyertakan sumber daya publik ke dalam paket sumber daya global untuk mengecilkan ukuran aplikasi HTML5.

Secara umum, paket sumber daya global perlu diatur sebelumnya untuk proyek, dan pembaruan selanjutnya masih dapat dikirimkan melalui backend aplikasi HTML5.

Contoh kode berikut menentukan paket sumber daya dengan ID aplikasi (appId) 66666692 sebagai paket sumber daya global dan mengatur sebelumnya paket offline assets/nebulaPreset/66666692.

  • getCommonResourceAppList: memberi tahu kontainer HTML5 bahwa paket offline dengan ID tertentu akan digunakan sebagai paket sumber daya global. Jika ID ini tidak dikonfigurasikan, paket offline ini tidak akan berfungsi meskipun disematkan.

  • getH5PresetPkg: menentukan jalur dan versi paket sumber daya global yang disematkan. Kontainer HTML5 memuat paket sumber daya dari direktori sumber daya aset yang ditentukan. Namun, jika versi yang lebih baru terdeteksi di server, paket yang disematkan dari versi sebelumnya ini tidak akan dimuat. Selain itu, Anda dapat menggunakan metode loadOffLineNebula yang disebutkan sebelumnya untuk mengatur sebelumnya paket sumber daya global. Dalam hal ini, Anda tidak perlu menentukan jalur dan versi paket offline yang disematkan dalam metode ini.

    Catatan

    Metode ini hanya berlaku untuk paket sumber daya global HTML5.

  • getTinyCommonApp: mengembalikan ID paket sumber daya kerangka mini app. Jika paket sumber daya global Anda hanya digunakan oleh kontainer HTML5, jangan tulis ID paket sumber daya publik ini dalam metode ini.

Contoh kode referensi:

public class H5AppCenterPresetProviderImpl implements H5AppCenterPresetProvider {
    private static final String TAG = "H5AppCenterPresetProviderImpl";

    // Paket sumber daya publik bisnis, coba hindari awalan 666666
    private static final String COMMON_BIZ_APP = "xxxxxxxx";

    // Paket sumber daya khusus untuk mini program, jangan pindahkan untuk bisnis
    private static final String TINY_COMMON_APP = "66666692";

    // Direktori aset paket yang diatur sebelumnya
    private final static String NEBULA_APPS_PRE_INSTALL = "nebulaPreset" + File.separator;

    // Koleksi paket yang diatur sebelumnya
    private static final Map<String, H5PresetInfo> NEBULA_LOCAL_PACKAGE_APP_IDS = new HashMap();

    static {

        H5PresetInfo h5PresetInfo2 = new H5PresetInfo();
        // Nama file direktori bawaan
        h5PresetInfo2.appId = TINY_COMMON_APP;
        h5PresetInfo2.version = "1.0.0.0";
        h5PresetInfo2.downloadUrl = "";

        NEBULA_LOCAL_PACKAGE_APP_IDS.put(TINY_COMMON_APP, h5PresetInfo2);

    }

    @Override
    public Set<String> getCommonResourceAppList() {
        Set<String> appIdList = new HashSet<String>();
        appIdList.add(getTinyCommonApp());
        appIdList.add(COMMON_BIZ_APP);
        return appIdList;
    }

    @Override
    public H5PresetPkg getH5PresetPkg() {
        H5PresetPkg h5PresetPkg = new H5PresetPkg();
        h5PresetPkg.setPreSetInfo(NEBULA_LOCAL_PACKAGE_APP_IDS);
        h5PresetPkg.setPresetPath(NEBULA_APPS_PRE_INSTALL);
        return h5PresetPkg;
    }

    @Override
    public Set<String> getEnableDegradeApp() {
        return null;
    }

    @Override
    public String getTinyCommonApp() {
        return TINY_COMMON_APP;
    }

    @Override
    public InputStream getPresetAppInfo() {
        return null;
    }

    @Override
    public InputStream getPresetAppInfoObject() {
        return null;
    }
}

Panggil kode berikut saat App dimulai:

H5Utils.getH5ProviderManager().setProvider(H5AppCenterPresetProvider.class.getName(), new H5AppCenterPresetProviderImpl());

Perbarui aplikasi HTML5

Secara default, Nebula memeriksa versi terbaru setiap kali aplikasi HTML5 dibuka. Mengingat tekanan pada server, durasi pemeriksaan dibatasi dan secara default adalah 30 menit. Untuk segera memeriksa versi terbaru yang tersedia, panggil kode berikut untuk meminta pembaruan. Secara umum, kode ini dapat dipanggil setelah aplikasi dimulai atau setelah pengguna masuk.

MPNebula.updateAllApp(new MpaasNebulaUpdateCallback(){
    @Override
    public void onResult(final boolean success, final boolean isLimit, String detailCode) {
        super.onResult(success, isLimit);
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                AUToast.makeToast(NebulaAppActivity.this,
                        success ? R.string.update_success : R.string.update_failure, 2000).show();
            }
        });
    }
});

Unduh aplikasi HTML5

API MPNebula memungkinkan Anda mengunduh aplikasi HTML5 secara manual.

/**
     *Unduh paket offline.
     *
     * @param appId: ID paket offline
     * @param mpaasNebulaDownloadCallback: callback unduhan
     */
    public static void downloadApp(final String appId, final MpaasNebulaDownloadCallback mpaasNebulaDownloadCallback)

Instal aplikasi HTML5

API MPNebula memungkinkan Anda menginstal aplikasi HTML5 secara manual.

/**
     *Instal paket offline.
     *
     * @param appId: ID paket offline
     * @param mpaasNebulaInstallCallback: callback instalasi
     */
    public static void installApp(final String appId, final MpaasNebulaInstallCallback mpaasNebulaInstallCallback)

Dapatkan informasi aplikasi

Panggil metode H5AppProvider untuk mendapatkan informasi terkait aplikasi HTML5.

H5AppProvider provider = H5Utils.getProvider(H5AppProvider.class.getName());
AppInfo appInfo = provider.getAppInfo("1000000"); // Dapatkan konfigurasi aplikasi.
boolean isInstalled = provider.isInstalled("100000", "1.0.0.0"); // Apakah versi aplikasi diinstal.
boolean isAvailable = provider.isAvailable("100000", "1.0.0.0");// Apakah paket offline versi aplikasi berhasil diunduh.

Verifikasi tanda tangan keamanan

Nebula memiliki mekanisme verifikasi tanda tangan paket offline untuk mencegah program jahat merusak paket offline yang diunduh ke perangkat. Panggil antarmuka MPNebula untuk menggunakan verifikasi tanda tangan. Di versi 10.1.60 dan di atasnya, konfigurasi wadah tambahan diperlukan. Lihat Konfigurasi Wadah HTML5 untuk detailnya.

Catatan

  • Panggil API ini sebelum membuka paket offline untuk pertama kali. Jika tidak, inisialisasi kunci publik gagal. Tentang kunci publik dan privat, lihat Konfigurasikan Paket Offline HTML5.

  • Verifikasi tanda tangan dilakukan secara paksa pada ponsel yang di-root, terlepas dari apakah verifikasi tanda tangan diaktifkan di klien.

```java
/**
     * @param publicKey: kunci publik untuk verifikasi tanda tangan
     */
    public static void enableAppVerification(final String publicKey)
```

Hapus informasi aplikasi lokal

Nebula menyediakan antarmuka untuk menghapus informasi aplikasi lokal. Setelah informasi aplikasi lokal dihapus, sisi klien akan mengirim permintaan ke sisi layanan untuk mengunduh dan memperbarui aplikasi lokal saat aplikasi dibuka kembali.

public class MPNebula {
    // appId adalah ID paket offline atau mini program
    public static boolean deleteAppInfo(String appId);
}
Catatan

Versi dasar minimum yang didukung oleh API ini adalah 10.1.68.8 dan 10.1.60.14 masing-masing.