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

# 小程序信息管理

这个模块主要是获取小程序信息的一些Api介绍。

# 1. 获取小程序对象信息

# 1.1 获取运行中的小程序对象信息

获取当前正在运行的小程序对象信息,如果无小程序在内存中,则返回 void。

/**
 * 获取小程序信息
 * @param appId 小程序 ID
 * @param apiServer API 服务器地址
 */

getAppletInfo(appId: string, apiServer?: string): IFinApplet.IAppletInfo | void

示例代码:

const appletInfo = client.getAppletInfo('appid')

# 1.2 获取小程序本地信息

获取小程序信息。从本地磁盘中查找小程序对象信息,如果依然不存在则返回null。

/**
 * 获取小程序本地信息
 * @param appId 小程序 ID
 * @param apiServer API 服务器地址
 * @param appletType 小程序类型
 */
async getAppletLocalInfo(appId: string, apiServer: string, appletType: EAppletType): Promise<IFinApplet.IFinAppResult<IFinApplet.IAppletInfo>>;

示例代码:

const appletInfo = await client.getAppletLocalInfo('appid','apiServer',EAppletType.release)

# 2. 获取小程序页面截图

# 2.1 获取指定小程序截图

 /**
   * 获取指定小程序截图,包含导航栏、tabBar 等原生元素,只能截取可视范围内
   * @param appId - 小程序的 ID。
   * @param apiServer - 与小程序关联的 API 服务器。
   * @param appRunId - 小程序运行 ID。
   * @returns 包含截图的图片信息或错误的结果。
   */
async captureAppletPicture(appId: string, apiServer?: string,appRunId?: string): Promise<IFinApplet.IFinAppResult<image.PixelMap>> 

示例代码:

省略部分代码

@Component
struct Page {
  @State appletImage: image.PixelMap | null = null

  async captureAppletPicture() {
    this.appletImage = await client.captureAppletPicture('appid','apiServer')
  }

  build(){
    Image(this.appletImage)
  }
}

# 2.2 获取指定小程序截图(支持长截图)

/**
 * 获取指定小程序截图,不包含导航栏、tabBar 等原生元素,可以通过参数控制截取可视范围外
 * @param appId - 小程序的 ID。
 * @param snapShotWholePage - 是否截取完整小程序页面(包括可视范围之外)。
 * @param apiServer - 与小程序关联的 API 服务器。
 * @param appRunId - 小程序运行 ID。
 * @returns 包含截图的图片信息或错误的结果。
 */
async captureAppletPictureV2(appId: string, snapShotWholePage: boolean, apiServer?: string,appRunId?: string): Promise<IFinApplet.IFinAppResult<image.PixelMap>> 

示例代码:

省略部分代码

@Component
struct Page {
  @State appletImage: image.PixelMap | null = null

  async captureAppletPicture() {
    this.appletImage = await client.captureAppletPictureV2('appid',true,'apiServer')
  }

  build(){
    Image(this.appletImage)
  }
}

# 3. 搜索小程序

要搜索小程序,需要两步:

  1. 确保在初始化SDK的时候,配置了该服务器信息;
  2. 调用该搜索接口搜索小程序
 /**
   * 搜索小程序
   * @param apiServer - 需要搜索的 API 服务器。
   * @param searchText - 搜索内容
   * @param pageNo - 页码
   * @param pageSize - 页大小
   * @returns 搜索小程序的结果
   */
  async searchApplets(apiServer: string, searchText: string, pageNo: number, pageSize: number): Promise<IFinApplet.IFinAppResult<IFinOpenAPI.ISearchAppletsRes | undefined>>
/**
 * 搜索小程序返回实体类
 *
 * @param list 搜索到的小程序集合
 * @param total 搜索到的小程序数量
 */
interface ISearchAppletsRes {
  list?: ISearchAppletInfo[]
  total: number
}

/**
 * 搜索小程序返回的小程序信息实体类
 *
 * @param appId 小程序id
 * @param appName 小程序名称
 * @param desc 小程序描述信息
 * @param highLights 高亮字体
 * @param logo 小程序logo
 * @param organName 企业名称
 * @param pageUrl 小程序搜索到的页面路径
 * @param showText 展示内容
 */
interface ISearchAppletInfo {
    appId?: string
    appName?: string
    desc?: string
    highLights?: IHighLight[]
    logo?: string
    organName?: string
    pageUrl?: string
    showText?: string
  }

/**
 * 高亮字体
 *
 * @param key 高亮字体的key
 * @param value 高亮字体的value
 */
interface IHighLight {
  key?: string,
  value?: string
}

示例代码:

省略部分代码

const searchRes = await client.searchApplets('apiServer','appid','工具',1,10)

# 4. 获取收藏的小程序列表

/**
   * 获取收藏的小程序列表
   * @param apiServer - 需要搜索的 API 服务器。
   * @param pageNo - 页码(传0则获取全部收藏小程序)
   * @param pageSize - 页大小(传0则获取全部收藏小程序)
   * @returns 获取小程序收藏列表的结果
   */
  public async getFavoriteApplets(apiServer: string, pageNo: number, pageSize: number): Promise<IFinApplet.IFinAppResult<IFinOpenAPI.IFavoriteApplets | undefined>>
interface IFavoriteApplets {
  list?: IFavoriteAppletsItem[]
  total: number
  apiServer: string
}

interface IFavoriteAppletsItem {
  appId?: string
  appName?: string
  currentUserId?: string
  logo?: string
  createTime?: number
  encryptedUserId?: string
}

示例代码:

省略部分代码

const res = await client.getFavoriteApplets(this.apiServer, 1, 10)
© FinClip with ❤ , Since 2017