小程序管理 API 提供小程序搜索、小程序打开、小程序关闭相关的接入说明。
打开小程序
打开小程序时,会先判断本地是否有缓存的小程序,如果没有,则会自动从远程服务器上下载小程序,然后打开。如果有缓存的小程序,则会先打开本地小程序,同时后台校验服务器端是否有新版本。
说明:
如果有新版本,则下载新版小程序,下次打开时,就会使用新版小程序。
1. 根据小程序 ID(appId)打开小程序
打开正式版本(通过审核并已经发布上线)的小程序。参考如下代码:
说明:
appId 字段为小程序的 ID,需要通过小程序开发者或者小程序搜索接口获取。
miniStartOptions 为小程序启动参数配置,参考 API 说明。 TmfMiniSDK.startMiniApp(activity, appId, miniStartOptions);
打开预览版或开发版小程序,参考如下代码:
TmfMiniSDK.startMiniApp(activiy, appId, MiniScene.LAUNCH_SCENE_MAIN_ENTRY, appVerType, options)
注意:
appVerType 应当和小程序的版本匹配;一般可以通过接口(getRecentList)返回的 MiniApp 对象实例获取 appVerType 的值。
预览版小程序的 appVerType 参数值应当为 MiniApp.TYPE_PREVIEW。
开发版小程序的 appVerType 参数值应当为 MiniApp.TYPE_DEVELOP。
2. 根据二维码内容打开小程序
小程序 SDK 提供根据平台二维码内容打开小程序的接口;在使用小程序 SDK 提供的扫码能力前,需要提前接入扫一扫的扩展能力,扫码能力的接入可以参考:扫码能力支持。
接入扫码能力后,可以通过如下的方法启动二维码扫描并打开小程序:
启动二维码扫描:
TmfMiniSDK.scan(activity);
获取二维码扫描结果:
说明:
二维码的扫描结果通过 Activity 的 onActivityResult 方法返回;为了识别二维码的内容,需要重写 Activity 的 onActivityResult 方法,并调用TmfMiniSDK.getScanResult
获取二维码内容。
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
JSONObject scanResult = TmfMiniSDK.getScanResult(requestCode, data);
}
根据二维码扫描结果打开小程序:
说明:
调用 getScanResult 方法获取的是一个 JSON 结构的数据,小程序的启动参数存放在这个 JSON 数据结构的 'result'
字段中,需要提取 result 字段所对应的值,最终将使用这个值用于打开小程序。
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
JSONObject scanResult = TmfMiniSDK.getScanResult(requestCode, data);
if (scanResult != null) {
String result = scanResult.optString("result");
if (!TextUtils.isEmpty(result)) {
MiniStartLinkOptions options = new MiniStartLinkOptions();
TmfMiniSDK.startMiniAppByLink(this, result, options);
}
}
}
3. 搜索并打开小程序
调用小程序搜索接口:
说明:
SearchOptions 的参数分别对应如下:
keyword:小程序关键字;
firstCate:小程序一级分类;
sencondaryCate:小程序二级分类。
小程序一级分类和二级分类同时填写,搜索结果将一级分类的结果和二级分类的结果取交集;
单独填写一级分类或者二级分类,则按照单个分类关键字进行搜索并返回结果。
SearchOptions searchOptions = new SearchOptions(keyword, firstCate, sencondaryCate);
TmfMiniSDK.searchMiniApp(searchOptions, new MiniCallback<List<MiniApp>>() {
@Override
public void value(int code, String msg, List<MiniApp> data) {
if (code == MiniCode.CODE_OK && data != null) {
} else {
}
}
});
打开搜索结果中的小程序:
说明:
小程序的搜索结果通过 MiniCallback 接口的 value 方法进行返回。
参数 int code 表示错误码。
参数 String msg 表示搜索返回信息。
参数 List<MiniApp> data 表示搜索到的小程序信息列表。
SearchOptions searchOptions = new SearchOptions(keyword, firstCate, sencondaryCate);
TmfMiniSDK.searchMiniApp(searchOptions, new MiniCallback<List<MiniApp>>() {
@Override
public void value(int code, String msg, List<MiniApp> data) {
if (code == MiniCode.CODE_OK && data != null) {
MiniApp miniApp = data.get(0);
TmfMiniSDK.startMiniApp(this,miniApp.appId,MiniScene.LAUNCH_SCENE_SEARCH,MiniApp.TYPE_ONLINE,new MiniStartOptions());
} else {
}
}
});
4. 小程序启动监听
为了方便开发者排查问题,小程序 SDK 提供小程序启动错误的监听,可以通过 MiniStartOptions 的 resultReceiver 进行设置,
设置方法如下:
private ResultReceiver mResultReceiver = new ResultReceiver(new Handler()) {
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
if (resultCode != MiniCode.CODE_OK) {
String errMsg = resultData.getString("errMsg");
Toast.makeText(mActivity, errMsg + resultCode, Toast.LENGTH_SHORT).show();
}
}
};
miniStartOptions.resultReceiver
可用于接收小程序启动错误情况,所以返回的错误码参考 API 说明,里面都有对应的说明。
本页内容是否解决了您的问题?