# 小程序管理
小程序管理主要介绍操作小程序的 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
/**
* 根据提供的请求启动小程序。
* @param request - 小程序请求详情。
* @returns 包含小程序客户端或错误的结果。
*/
public 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
/**
* 使用二维码启动小程序。
* @param request - 二维码请求详情。
* @returns 包含小程序客户端或错误的结果。
*/
public startAppletByQrCode(request: IFinApplet.IQrCodeRequest): Promise<IFinApplet.IFinAppResult<AppletClient>>
# 调用示例
client.startAppletByQrCode({
qrcode: 'qrcode'
})
# 2. 关闭小程序
该 API 并不会真正结束小程序,而是将小程序移至系统后台,等同于右上角的关闭按钮。
# 2.1 关闭指定小程序
# API
/**
* 关闭小程序。
* @param appId - 要关闭的小程序 ID。
* @param apiServer - 与小程序关联的 API 服务器。
* @returns 表示成功或失败的结果。
*/
public closeApplet(appId: string, apiServer?: string): Promise<IFinApplet.IFinAppResult<boolean>>
# 调用示例
client.closeApplet('appId', 'apiServer')
# 2.2 关闭所有小程序
# API
/**
* 关闭所有小程序但不删除其资源。
* @returns 表示成功或失败的结果。
*/
public closeAllApplet(): Promise<IFinApplet.IFinAppResult<boolean>>
# 调用示例
client.closeAllApplet()
# 3. 结束小程序
# 3.1 结束指定小程序
# API
/**
* 结束指定小程序。
* @param appId - 要结束的小程序 ID。
* @param apiServer - 与小程序关联的 API 服务器。
* @returns 表示成功或失败的结果。
*/
public clearApplet(appId: string, apiServer?: string): Promise<IFinApplet.IFinAppResult<boolean>>
# 调用示例
client.clearApplet('appId', 'apiServer')
# 3.2 结束所有小程序
# API
/**
* 结束所有小程序。
* @returns 表示成功或失败的结果。
*/
public clearAllApplet(): Promise<IFinApplet.IFinAppResult<boolean>>
# 调用示例
client.clearAllApplet()
# 4. 删除小程序信息
由于小程序的运行,会将小程序包和小程序信息缓存在本地,以后打开时会优先使用缓存,所以打开时速度也就会很快。所以,如果想要将小程序的所有信息都删除,那么可以使用以下 api 删除某个小程序或者删除所有小程序。
# 4.1 删除指定小程序
# API
/**
* 从本地缓存中移除小程序。
* @param appId - 要移除的小程序 ID。
* @param apiServer - 与小程序关联的 API 服务器。
* @returns 表示成功或失败的结果。
*/
public removeAppletFromLocalCache(appId: string,apiServer?: string): Promise<IFinApplet.IFinAppResult<boolean>>
# 调用示例
client.removeAppletFromLocalCache('appId', 'apiServer')
# 4.1 删除所有小程序
# API
/**
* 从本地缓存中移除所有小程序和基础库信息。
* @returns 表示成功或失败的结果。
*/
public async removeAllAppletFromLocalCache(): Promise<IFinApplet.IFinAppResult<boolean>>
# 调用示例
client.removeAppletFromLocalCache('appId', 'apiServer')