FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# 小程序管理

小程序管理主要介绍操作小程序的 API,包括:打开小程序,关闭小程序

下面的 API 均是在调用 FinAppClient.init 方法返回出来 FinAppClient 实例上的方法,示例代码中的 client 即为 FinAppClient 的实例。如有特殊会在对应 API 说明。

# 1. 打开小程序

不同的场景,所使用的打开小程序的api也不同。所以,我们提供了多种不同的打开小程序的api。

  1. 打开线上小程序,这里一般只需要小程序id和服务器地址即可,该api只能打开正式版的小程序。

  2. 二维码打开小程序,这个场景是扫描小程序平台上的二维码,得到二维码里的内容,然后使用该内容打开小程序。正式版、体验版、审核版、开发版、预览版本的小程序二维码都可以使用该 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')