tencent cloud

文档反馈

打开小程序

最后更新时间:2024-10-18 10:46:57
    小程序管理 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 提供的扫码能力前,需要提前接入扫一扫的扩展能力,扫码能力的接入可以参考:扫码能力支持。
    接入扫码能力后,可以通过如下两种方法启动二维码扫描并打开小程序:
    方法一:由宿主Activity处理扫码结果
    启动二维码扫描:
    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) { //提取result字段 String result = scanResult.optString("result"); if (!TextUtils.isEmpty(result)) { MiniStartLinkOptions options = new MiniStartLinkOptions();
    //利用result字段的值打开小程序 TmfMiniSDK.startMiniAppByLink(this, result, options); } } }
    方法二:由代理Activity自动处理扫码结果并直接启动小程序
    扫描二维码并启动小程序:
    TmfMiniSDK.startMiniAppByScan(activity);

    3. 配置Scheme打开小程序

    小程序支持通过URL跳转的方式由第三方应用和扫码工具打开。使用该能力前需要先配置宿主应用的URL Scheme,在App中添加以下字符串资源:
    <string name="mini_sdk_intent_filter_scheme">your scheme</string>
    其中your scheme部分应当替换为宿主的Scheme。
    小程序URL的host固定为applet,URL的完整格式为:${scheme}://applet?appid=${appId}&path=${encode过的path}&param=${encode过的param}。URL中每个参数的定义如下:
    参数名
    类型
    是否必填
    说明
    appId
    String
    小程序id
    path
    String
    小程序入口路径,需要进行URI编码
    param
    String
    传递给小程序的query,需要进行URI编码
    TCMPP控制台会为所有正式版小程序创建对应的URL,并根据该URL生成二维码。控制台创建URL时默认会使用tcmpp+宿主应用appkey作为Scheme。
    
    
    
    为了保证控制台生成正确的URL,应当将实际的宿主应用URL Scheme配置到控制台中。点击下方的修改按钮即可更改生成URL时使用的Scheme:
    
    配置完毕后用户可以直接扫描生成的二维码,或是通过URL跳转打开对应的小程序。

    4. 搜索并打开小程序

    调用小程序搜索接口:
    说明:
    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 说明,里面都有对应的说明。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持