Setelah mengintegrasikan kontainer program mini WindVane atau uni-app ke dalam aplikasi asli, Anda dapat mencari program mini, mendapatkan daftar program mini, atau memulai program mini.
Mendapatkan daftar program mini
SDK kontainer program mini menyediakan antarmuka untuk mendapatkan daftar program mini. Jika hanya ingin mendapatkan daftar program mini, Anda dapat langsung menggunakan antarmuka ini. Metode callback dari antarmuka dipanggil dari thread UI. Untuk operasi lainnya, disarankan menggunakan API yang relevan dari EMAS.
IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
if (miniAppService != null) {
miniAppService.getMiniAppList(this, new OnQueryMiniAppsListener() {
@Override
public void onSuccess(List<MiniAppInfo> miniAppInfos, String anchor) {
// Mengembalikan daftar program mini. Secara default, maksimal 10 program mini dapat diperoleh. Parameter anchor digunakan untuk mendapatkan lebih banyak program mini.
}
@Override
public void onFailed(int errorCode) {
}
});
}Mencari program mini
SDK kontainer program mini menyediakan antarmuka untuk mencari program mini. Jika hanya ingin mencari program mini, Anda dapat langsung menggunakan antarmuka ini. Metode callback dari antarmuka dipanggil dari thread UI. Untuk kebutuhan pencarian tambahan, disarankan menggunakan API yang relevan dari EMAS.
IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
if (miniAppService != null) {
// Parameter kata kunci menentukan kata kunci pencarian.
miniAppService.queryMiniApps(this, keyword, new OnQueryMiniAppsListener() {
@Override
public void onSuccess(List<MiniAppInfo> miniAppInfos, String anchor) {
// Mengembalikan hasil pencarian. Secara default, maksimal 10 program mini dapat diperoleh. Parameter anchor digunakan untuk mendapatkan lebih banyak program mini.
}
@Override
public void onFailed(int errorCode) {
}
});
}Memulai program mini
Anda dapat memulai program mini menggunakan ID-nya. Program mini WindVane dan uni-app dapat dimulai dengan cara yang sama. Memuat program mini memerlukan waktu tertentu. Disarankan menambahkan kode ke metode callback terkait untuk menginisialisasi atau memperbarui elemen UI. Metode callback dipanggil dari thread UI.
IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
if (miniAppService != null) {
miniAppService.openMiniApp(mItemView.getContext(), "151160916074102445****", null, new OnOpenMiniAppListener() {
//151160916074102445**** menunjukkan ID program mini, yang diperoleh dari Application Open Platform.
@Override
public void onOpenMiniApp() {
// Anda dapat mengimplementasikan metode ini untuk menampilkan indikator pemuatan di UI saat program mini mulai dimuat.
}
@Override
public void onOpenSuccess(String appId) {
// Anda dapat mengimplementasikan metode ini untuk menyembunyikan indikator pemuatan di UI saat program mini dimulai.
}
@Override
public void onOpenFailed(String appId, int errorCode) {
// Anda dapat mengimplementasikan metode ini untuk menyembunyikan indikator pemuatan di UI saat program mini gagal dimulai.
}
});
}Buka halaman tertentu dalam program mini
Saat memulai program mini, Anda dapat mengonfigurasi parameter path untuk membuka halaman tertentu dalam program mini dan menggunakan extraData untuk meneruskan argumen ke halaman tersebut.
Untuk program mini uni-app, parameter path menentukan URL absolut halaman program mini, dan extraData adalah objek JSON yang digunakan untuk meneruskan argumen startup ke program mini. Setelah program mini dimulai, Anda dapat mengambil nilai dari extraData menggunakan metode plus.runtime.arguments.
Untuk membuka halaman dalam program mini WindVane, Anda dapat mengakses URL dalam format berikut: https://{appId}.app.mini.windvane.suite.emas.alibaba.com/index.html#/{path}?key=value&key2=123. Saat mengembangkan program mini, Anda harus menggunakan perutean hash untuk menangani logika navigasi halaman.
MiniAppOpenConfiguration config = new MiniAppOpenConfiguration();
config.path = "/test";
JSONObject arguments = new JSONObject();
arguments.put("MSG","Hello miniApp");
config.extraData = arguments;
IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
if (miniAppService != null) {
miniAppService.openMiniApp(v.getContext(), "151160916074102445****", config, new OnOpenMiniAppListener() {
//151160916074102445**** menunjukkan ID program mini, yang diperoleh dari Application Open Platform.
@Override
public void onOpenMiniApp() {
// Anda dapat mengimplementasikan metode ini untuk menampilkan indikator pemuatan di UI saat program mini mulai dimuat.
}
@Override
public void onOpenSuccess(String appId) {
// Anda dapat mengimplementasikan metode ini untuk menyembunyikan indikator pemuatan di UI saat program mini dimulai.
}
@Override
public void onOpenFailed(String appId, int errorCode) {
// Anda dapat mengimplementasikan metode ini untuk menyembunyikan indikator pemuatan di UI saat program mini gagal dimulai.
}
});
}Ambil Daftar Mini-App Dalam Kategori
SDK kontainer program mini menawarkan antarmuka untuk mengambil daftar program mini dalam kategori tertentu.
IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
if (miniAppService != null) {
miniAppService.queryMiniAppCategories(context, new OnQueryMiniAppCategoryListener() {
@Override
public void onSuccess(List<MiniAppCategory> miniAppCategories) {
// Menampilkan daftar mini-app dalam satu kategori.
}
@Override
public void onFailed(int errorCode, String errorMsg) {
}
});
}Pemuatan Awal Sumber Daya Mini-App
SDK kontainer program mini menyediakan antarmuka untuk pemuatan awal sumber daya program mini.
IMiniAppService miniAppService = ServiceManager.getInstance().getService(IMiniAppService.class.getName());
if (miniAppService!=null){
miniAppService.preloadMiniApp(context, "151160916074102445****", new OnPreloadMiniAppListener() {
// "151160916074102445****" menandakan ID mini-app, diperoleh dari platform aplikasi terbuka.
@Override
public void onPreloadSuccess(String appId) {
//Dipicu setelah berhasil memuat awal sumber daya
}
@Override
public void onPreloadFailed(String appId, int errorCode) {
//Dipanggil ketika pemuatan awal sumber daya gagal
}
});
}