打开小程序
/*** 启动小程序* @param activity* @param appId 小程序Id(从控制台获取)* @param options*/public static void startMiniApp(Activity activity, String appId, MiniStartOptions options)/*** 启动小程序* @param activity* @param appId 小程序Id (从控制台获取)* @param scene 不同场景下打开小程序设置不同参数,参见MiniScene* @param appVerType 小程序的版本类型(预览\\开发版本),参见MiniApp* @param options*/public static void startMiniApp(Activity activity, String appId, int scene, int appVerType, MiniStartOptions options) {
说明:
如果有本地缓存版本,则先打开本地版本,同时检查更新并下载,新版本在下次冷启动时生效。
打开正式版小程序
如下方式打开已上线最新版小程序。
TmfMiniSDK.startMiniApp(this, appId, options);//或者TmfMiniSDK.startMiniApp(this, appId, MiniScene.LAUNCH_SCENE_MAIN_ENTRY, MiniApp.TYPE_ONLINE, options);
打开预览和开发版正式小程序
当本地已存在预览\\开发版信息(通过 getRecentList 返回本地已存在小程序列表),可以通过此方法打开;否则,需要通过 startMiniAppByLink 扫描二维码打开。
TmfMiniSDK.startMiniApp(this, appId, MiniScene.LAUNCH_SCENE_MAIN_ENTRY, appVerType, options);
打开搜索结果小程序
打开通过搜索 TmfMiniSDK.searchMiniApp 接口返回的列表小程序。
TmfMiniSDK.startMiniApp(this, appId, MiniScene.LAUNCH_SCENE_SEARCH, MiniApp.TYPE_ONLINE, options);
miniStartOptions.resultReceiver 可用于接收小程序启动错误情况。
private ResultReceiver mResultReceiver = new ResultReceiver(new Handler()) {@Overrideprotected 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();}}};
打开二维码小程序
TMF 内置扫码模块,通过 scan 接口启动扫码,在 onActivityResult 中调用 getScanResult 对扫码结果进行处理。
/*** 启动扫码** @param activity*/public static void scan(Activity activity)/*** 获取扫码结果** @param requestCode onActivityResult中的requestCode* @param intent onActivityResult中的intent* @return*/public static JSONObject getScanResult(int requestCode, Intent intent)/*** 通过扫码打开小程序** @param activity* @param link 从getScanResult获取* @param resultReceiver 接收小程序启动过程中错误情况*/public static void startMiniAppByLink(Activity activity, String link,MiniStartLinkOptions resultReceiver)
扫码结果格式:
{ "scanType": "类型", "result": "扫码结果数据,startMiniAppByLink中link参数来源", "charset": "编码" }
搜索小程序
/*** 小程序搜索** @param searchOptions* @param callback*/public static void searchMiniApp(SearchOptions searchOptions, MiniCallback<List<MiniApp>> callback)
获取最近访问小程序列表
/*** 获取最近访问小程序列表* @param callback*/public static void getRecentList(IRecentMiniCallback callback)
删除小程序
由于小程序的运行,会将小程序包和小程序信息缓存在本地,以便下次更快速的打开。如果想要将小程序的所有信息都删除,可以调用以下 API 删除某个小程序或者删除所有小程序。
/*** 根据appId删除小程序(正式、开发、预览版都会删除)* @param appId*/public static void deleteMiniApp(String appId)/*** 删除指定类型和版本小程序* @param appId* @param appVerType* @param version*/public static void deleteMiniApp(String appId, int appVerType, String version)
停止小程序
/*** 停止小程序** @param context* @param appId*/public static void stopMiniApp(Context context, String appId)/*** 停止所有小程序** @param context 上下文*/public static void stopAllMiniApp(Context context)
预下载小程序
/** * 预下载小程序主包* * @param preDownloadInfo 预下载信息 * @param callback 下载回调 */ public static void preDownloadPkg(PreDownloadInfo preDownloadInfo, IDownloadCallback callback)/** * 预下载小程序主包 * @param preDownloadInfos 预下载信息 * @param callback 下载回调 */ public static void preDownloadPkg(List<PreDownloadInfo> preDownloadInfos, IDownloadCallback callback)
当前进程是否是小程序进程
/*** 当前运行的进程是否是小程序进程* @param context* @return*/public static boolean isMiniProcess(Context context)
预加载小程序进程
/** * 预加载进程, 仅主进程调用才会生效 * * @param bundle 拓展参数,可传null */ public static void preloadMiniApp(Context context, Bundle bundle)
小程序授权管理
/*** 获取小程序授权列表* @param appId* @param appVerType 小程序版本类型* @return*/public static List<MiniAuthState> getAuthStateList(String appId, int appVerType)/*** 设置授权状态* @param appId* @param appVerType 小程序版本类型* @param scopeName 权限名* @param grant 是否授权*/public static void setAuthState(String appId, int appVerType, String scopeName, boolean grant)