# 小程序管理
小程序管理主要介绍操作小程序的 API,包括:打开小程序,关闭小程序
下面的 API 均是在调用
FinAppClient.init
方法返回出来FinAppClient
实例上的方法,示例代码中的client
即为FinAppClient
的实例。如有特殊会在对应 API 说明。
# 1. 打开小程序
不同的场景,所使用的打开小程序的api也不同。所以,我们提供了多种不同的打开小程序的api。
打开线上小程序,这里一般只需要小程序id和服务器地址即可,该api只能打开正式版的小程序。
二维码打开小程序,这个场景是扫描小程序平台上的二维码,得到二维码里的内容,然后使用该内容打开小程序。正式版、体验版、审核版、开发版、预览版本的小程序二维码都可以使用该 Api 打开。
# 1.1 普通打开小程序
下面各类型都是在 IFinApplet
命名空间下,比如 IFinApplet.IAppletRequest
、IFinApplet.IQrCodeRequest
IAppletRequest
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
appId | String | 是 | 小程序 id |
apiServer | String | 是 | 小程序所属服务器 |
startParams | IStartParams | 否 | 小程序启动参数 |
offlineLibraryPath | String | 否 | 离线小程序压缩包路径,可传入一个本地小程序包路径,加快首次启动速度 |
offlineFrameworkZipPath | String | 否 | 离线基础库压缩包路径,可传入一个基础库路径,加快首次启动速度 |
IStartParams
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
path | String | 否 | 启动的页面路径 |
query | String | 否 | 启动的参数 |
# API
client.startApplet(request: IFinApplet.IAppletRequest): Promise<AppletClient | void>
# 1.1.1 打开小程序(基础参数)
# 调用示例
client.startApplet({
appId: 'appId',
apiServer: 'apiServer'
})
# 1.1.2 打开小程序(带启动参数)
# 调用示例
client.startApplet({
appId: 'appId',
apiServer: 'apiServer',
startParams: {
path:'/pages/index/index',
query: "aaa=test&bbb=123"
}
})
# 1.2 二维码打开小程序
扫描平台中的小程序二维码,将解析出来的小程序二维码内容传给接口打开小程序。
IQrCodeRequest
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
qrCode | String | 是 | 二维码内容 |
# API
client.startAppletByQrCode(request: IFinApplet.IQrCodeRequest): Promise<AppletClient | void>
# 调用示例
client.startAppletByQrCode({
qrcode: 'qrcode'
})
# 2. 关闭小程序
该 API 并不会真正结束小程序,而是将小程序移至系统后台,等同于右上角的关闭按钮。
# 2.1 关闭指定小程序
# API
client.closeApplet(appId: string, apiServer: string): Promise<void>
# 调用示例
client.closeApplet('appId', 'apiServer')
# 2.2 关闭所有小程序
# API
client.closeAllApplet(): Promise<void>
# 调用示例
client.closeAllApplet()
# 3. 结束小程序
# 3.1 关闭指定小程序
# API
client.clearApplet(appId: string, apiServer: string): Promise<void>
# 调用示例
client.clearApplet('appId', 'apiServer')
# 3.2 关闭所有小程序
# API
client.clearAllApplet(): Promise<void>
# 调用示例
client.clearAllApplet()
# 4. 删除小程序信息
由于小程序的运行,会将小程序包和小程序信息缓存在本地,以后打开时会优先使用缓存,所以打开时速度也就会很快。所以,如果想要将小程序的所有信息都删除,那么可以使用以下 api 删除某个小程序或者删除所有小程序。
# 4.1 删除指定小程序
# API
client.removeAppletFromLocalCache(appId: string, apiServer: string)
# 调用示例
client.removeAppletFromLocalCache('appId', 'apiServer')