# 小程序信息管理
这个模块主要是获取小程序信息的一些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. 搜索小程序
要搜索小程序,需要两步:
- 确保在初始化SDK的时候,配置了该服务器信息;
- 调用该搜索接口搜索小程序
/**
* 搜索小程序
* @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)