Fitur Mini Program bergantung pada dukungan client.
Interaksi antara pustaka dasar dan client
Fitur Mini Program bergantung pada dukungan client:
Fitur baru dalam suatu versi pustaka dasar memerlukan versi client minimum tertentu agar dapat berjalan.
Beberapa fitur baru dalam versi pustaka dasar yang lebih baru tidak kompatibel dengan versi client lama.
Untuk informasi selengkapnya mengenai kompatibilitas pustaka dasar, lihat Pastikan kompatibilitas pustaka dasar. Anda dapat menggunakan my.SDKVersion untuk memeriksa nomor versi pustaka dasar saat ini.
Pustaka dasar yang kompatibel
Komponen dan fitur API Mini Program terus ditingkatkan. Karena versi client lama tidak mendukung fitur-fitur baru ini, Anda perlu menangani masalah kompatibilitas tersebut.
Anda dapat menggunakan antarmuka my.canIUse(String) untuk memeriksa kompatibilitas. Untuk informasi selengkapnya, lihat Referensi API.
Contoh kompatibilitas
Menangani kompatibilitas untuk API baru
Untuk API baru, Anda dapat menggunakan kode berikut untuk menentukan apakah pustaka dasar saat ini mendukung API tersebut:
if (my.getLocation) {
my.getLocation();
} else {
// Tampilkan prompt untuk mendorong pengguna melakukan upgrade ke versi client terbaru.
my.alert({
title: 'Prompt',
content: 'Versi saat ini terlalu lama untuk menggunakan fitur ini. Harap lakukan upgrade ke versi terbaru.'
});
}Menangani kompatibilitas untuk parameter API baru
Untuk parameter API baru, Anda dapat menggunakan metode berikut untuk memeriksa dukungan, lalu menambahkan kode penanganan Anda:
if (my.canIUse('getLocation.object.type')) {
// Tambahkan kode penanganan Anda di sini.
} else {
console.log('Versi saat ini tidak mendukung parameter ini')
}Menangani kompatibilitas untuk nilai kembali API baru
Untuk nilai kembali API baru, Anda dapat menggunakan metode berikut untuk memeriksa dukungan, lalu menambahkan kode penanganan Anda:
if (my.canIUse('getSystemInfo.return.storage')) {
// Tambahkan kode penanganan Anda di sini.
} else {
console.log('Versi saat ini tidak mendukung nilai kembali ini')
}Menangani kompatibilitas untuk properti komponen baru
Properti komponen baru tidak berfungsi pada versi client lama, tetapi tidak menyebabkan error. Untuk menerapkan degradasi elegan pada suatu properti, lihat kode berikut:
Page({
data: {
canIUse: my.canIUse('button.open-type.share')
}
})Versi pustaka dasar
Versi pustaka dasar | Pustaka dasar dan versi garis dasarnya |
2.8.9 |
|
1.14.1 | 10.1.68 |
1.14.1 | 10.1.60 |
1.9.0 | 10.1.32 |
Panduan integrasi pustaka dasar
Versi garis dasar yang berbeda memerlukan metode integrasi yang berbeda. Sebelum mengintegrasikan pustaka dasar, pastikan versi garis dasar Anda.
iOS
Versi garis dasar 10.2.3
Garis dasar kontainer Mini Program baru cp_change_15200851 dan 10.2.3 mendukung pembuatan Pustaka Dasar Mini Program 2.0.
Disarankan agar kontainer Mini Program baru memprioritaskan penggunaan versi garis dasar 10.2.3.
Android
Versi garis dasar 10.1.68.7 dan yang lebih baru
Anda dapat mengatur instans Provider saat startup. Berikut ini contoh kodenya:
H5Utils.setProvider(H5AppCenterPresetProvider.class.getName(),new TinyAppCenterPresetProvider());Jika client menggunakan paket resource publik H5, Anda harus mewarisi kelas TinyAppCenterPresetProvider dan menggabungkan kode terkait paket resource publik ke dalam instans kelas turunan tersebut.
Versi garis dasar seri 10.1.60 dan versi 10.1.68.6 serta yang lebih lama
Anda dapat mengimplementasikan kelas antarmuka
H5AppCenterPresetProvider. Berikut ini contoh kodenya:package com.mpaas.demo.nebula; import com.alipay.mobile.nebula.appcenter.H5PresetInfo; import com.alipay.mobile.nebula.appcenter.H5PresetPkg; import com.alipay.mobile.nebula.provider.H5AppCenterPresetProvider; import java.io.File; import java.io.InputStream; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; public class H5AppCenterPresetProviderImpl implements H5AppCenterPresetProvider { private static final String TAG = "H5AppCenterPresetProviderImpl"; // Setel paket resource khusus untuk Mini Program. ID ini bersifat tetap dan tidak dapat diubah. private static final String TINY_COMMON_APP = "66666692"; // Folder asset untuk paket preset. private final static String NEBULA_APPS_PRE_INSTALL = "nebulaPreset" + File.separator; // Kumpulan paket preset. private static final Map<String, H5PresetInfo> NEBULA_LOCAL_PACKAGE_APP_IDS = new HashMap(); static { H5PresetInfo h5PresetInfo2 = new H5PresetInfo(); // Nama file di folder 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()); 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; } /** * Menyetel ID paket resource yang dapat didegradasi. */ @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; } }Unduh pustaka dasar Mini Program yang sesuai dengan versi client yang diintegrasikan. Salin pustaka dasar tersebut ke folder
assetyang ditentukan pada langkah sebelumnya dan ubah namanya. Berdasarkan contoh kode pada langkah sebelumnya, path pustaka dasar Mini Program adalahassets/nebulaPreset/66666692.Anda dapat mengatur instans Provider saat startup. Berikut ini contoh kodenya:
H5Utils.setProvider(H5AppCenterPresetProvider.class.getName(), new H5AppCenterPresetProviderImpl());CatatanJika client menggunakan paket resource publik H5, Anda harus menggabungkan kode terkait paket resource publik ke dalam kelas instans
H5AppCenterPresetProvider.Untuk informasi selengkapnya, lihat Contoh kode.