小程序管理

最近更新时间:2024-05-07 11:31:11

我的收藏

打开小程序

启动选项请参考 MiniStartOptions
启动场景请参考 MiniScene
/**
* 启动小程序
* @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()) {
@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();
}
}
};

打开二维码小程序

TMF 内置扫码模块,通过 scan 接口启动扫码,在 onActivityResult 中调用 getScanResult 对扫码结果进行处理
启动选项请参考 MiniStartLinkOptions
/**
* 启动扫码
*
* @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": "编码" }

搜索小程序

搜索选项请参考 SearchOptions
/**
* 小程序搜索
*
* @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)

预下载小程序

预下载参数请参考 PreDownloadInfo
/** * 预下载小程序主包
* * @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)

小程序授权管理

授权状态请参考 MiniAuthState
/**
* 获取小程序授权列表
* @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)