tencent cloud

腾讯云超级应用服务

动态与公告
【2025年1月2日】关于腾讯云小程序平台更名为腾讯云超级应用服务的公告
控制台更新动态
Android SDK 更新动态
iOS SDK 更新动态
Flutter 更新动态
IDE 更新动态
基础库更新动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
按量计费(后付费)
续费指引
停服说明
快速入门
套餐管理
概述
控制台账号管理
存储配置
加速配置
品牌化配置
平台功能
控制台登录
用户和权限体系
小程序管理
小游戏管理
应用管理
商业化
平台管理
用户管理
团队管理
运营管理
安全中心
代码接入指引
Demo 及 SDK 获取
Android
iOS
Flutter
App 服务端接入指南
GUID 生成规则
小程序开发指南
小程序介绍与开发环境
小程序代码组成
指南
框架
组件
API
服务端
JS SDK
基础库
IDE 使用指南
小游戏开发指南
指南
API
服务端
实践教程
小程序登录实践教程
小程序订阅消息实践教程
支付相关实践教程
广告接入实践教程
小游戏订阅消息实践教程
相关协议
数据处理和安全协议

打开小程序

PDF
聚焦模式
字号
最后更新时间: 2025-07-04 16:48:07
小程序管理 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 提供的扫码能力前,需要提前接入扫一扫的扩展能力,扫码能力的接入可以参考:扫码扩展SDK
接入扫码能力后,可以通过如下两种方法启动二维码扫描并打开小程序:
方法一:由superapp 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跳转的方式由第三方应用和扫码工具打开。使用该能力前需要先配置 superapp 的URL Scheme,在 superapp 中添加以下字符串资源:
<string name="mini_sdk_intent_filter_scheme">your scheme</string>
其中 your scheme 部分应当替换为 superapp 的 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编码
产品控制台会为所有正式版小程序创建对应的 URL,并根据该 URL 生成二维码。控制台创建 URL 时默认会使用 tcmpp+superapp 的 appkey 作为 Scheme。



为了保证控制台生成正确的URL,应当将实际的superapp URL Scheme配置到控制台中。点击下方的修改按钮即可更改生成URL时使用的Scheme:

配置完毕后用户可以直接扫描生成的二维码,或是通过URL跳转打开对应的小程序。

4. 搜索并打开小程序

调用小程序搜索接口:
说明:
SearchOptions 的参数分别对应如下:
keyword:小程序关键字;
firstCate:小程序一级分类;
secondaryCate:小程序二级分类。
小程序一级分类和二级分类同时填写,搜索结果将一级分类的结果和二级分类的结果取交集;
单独填写一级分类或者二级分类,则按照单个分类关键字进行搜索并返回结果。
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 {
//搜索失败或者小程序列表为空 } } });

5. 小程序启动监听

为了方便开发者排查问题,小程序 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 说明

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈