文档管理中心
您当前浏览的HarmonyOS 5.0.2(API 14)文档归档不再维护,推荐您使用最新版本。详细请参考文档维护策略变更
API参考应用服务Store Kit(应用市场服务)ArkTS APIproductViewManager (应用市场推荐)

productViewManager (应用市场推荐)

提供展示应用/元服务详情页、应用内快捷方式加桌的能力。

说明

调用接口需捕获异常。

起始版本:4.1.0(11)

导入模块

收起
自动换行
深色代码主题
复制
  1. import { productViewManager } from '@kit.StoreKit';

ProductViewCallback

在加载应用详情页面时作为入参用于接收加载过程中的状态变化。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:4.1.0(11)

展开

名称

类型

只读

可选

说明

onError

ErrorCallback

回调函数,接收应用详情页加载失败的错误码。

  • 1011表示拉起/切前台失败。
  • 1012表示切后台失败。
  • 1013表示销毁失败。

onAppear

Callback<void>

回调函数,当应用详情页成功打开时回调该方法。

说明

起始版本:5.0.2(14)。

onDisappear

Callback<void>

回调函数,当应用详情页关闭时回调该方法。

说明

起始版本:5.0.2(14)。

ServiceViewCallback

在加载元服务卡片加桌页面时作为入参用于接收加载过程中的状态变化。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:4.1.0(11)

展开

名称

类型

只读

可选

说明

onReceive

Callback<ServiceViewReceiveData>

当打开元服务卡片加桌页成功,点击加桌,收到加桌结果。

onError

ErrorCallback

回调函数,接收元服务卡片加桌页加载失败的错误码。

  • 1011表示拉起/切前台失败。
  • 1012表示切后台失败。
  • 1013表示销毁失败。

onAppear

Callback<void>

回调函数,当元服务卡片加桌页成功打开时回调该方法。

说明

起始版本:5.0.2(14)。

onDisappear

Callback<void>

回调函数,当元服务卡片加桌页关闭时回调该方法。

说明

起始版本:5.0.2(14)。

ServiceViewReceiveData

元服务加桌回调数据。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:4.1.0(11)

展开

名称

类型

只读

可选

说明

result

ReceiveDataResult

加桌结果。

msg

string

加桌结果描述信息。

formInfo

{[key: string]: Object}

加桌卡片数据。有以下必填属性:

  • bundleName表示元服务包名。
  • name表示卡片名称。
  • abilityName表示ability名称。
  • moduleName表示元服务模块名。
  • defaultDimension表示卡片尺寸。

ReceiveDataResult

元服务加桌结果码类型的枚举。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:4.1.0(11)

展开

名称

说明

SUCCESS

1000

成功。

FAILURE

1001

失败。

EXCEPTION

1002

异常。

CheckShortcutResult

快捷方式校验结果。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:5.0.2(14)

展开

名称

类型

只读

可选

说明

tid

string

基于应用的快捷方式信息生成的Transaction ID。若快捷方式信息发生变化,则每次覆盖生成新的tid,否则返回历史tid以及剩余过期时间expired。

expired

number

Transaction ID的过期时间,单位是ms。

code

number

校验的结果码,0表示校验成功,否则具体的失败原因,可以参考ArkTS API错误码

limit

number

允许应用添加快捷方式的数量。

SKExposure

登记归因来源的广告曝光数据。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:5.0.2(14)

参数:

展开

名称

类型

只读

可选

说明

adTechId

string

分发平台对应的归因角色ID,本次登记归因来源对应营销任务所归属的分发平台的标识符。

分发平台向应用归因云侧注册归因角色时,由应用归因服务分配,长度固定为8字符。

campaignId

string

营销任务ID,登记归因来源对应的营销任务的ID,长度不超过6字符。

destinationId

string

应用上架华为应用市场的AppId,长度不超过64个字符。

说明

您的应用ID参考查看应用基本信息获取。

mmpIds

string[]

本次广告投放,使用的归因监测平台对应的归因角色ID。最大数量2个,每个ID字符串长度固定为8字符。

如果调用方传递了归因监测平台ID,应用归因服务会向归因监测平台回传归因结果;如果调用方没有传递监测平台ID,则归因监测平台收不到回传的归因结果。

serviceTag

string

分发平台关注的业务信息,如创意、素材等,长度不超过32字符。

serviceTag通过白名单方式向分发平台开放,白名单开放方式请联系华为运营。

nonce

string

用于计算签名的随机数,不带'-',每次广告请求,nonce唯一。长度固定为32字符。

同一个adTechId,同一个nonce最多可以登记5次曝光,5次点击类型的归因来源信息。

timestamp

number

unix时间戳,单位:毫秒,请求广告的时间戳。(即广告投放时间,登记归因来源时,要求广告时间与当前时间偏差不超过10分钟)

signature

string

签名值,分发平台/媒体根据广告相应信息按照归因来源签名计算规则计算生成签名并提供,长度不超过800字符。

示例:

收起
自动换行
深色代码主题
复制
  1. import { productViewManager } from '@kit.StoreKit';
  2. import { hilog } from '@kit.PerformanceAnalysisKit';
  3. import type { common, Want } from '@kit.AbilityKit';
  4. import { BusinessError } from '@kit.BasicServicesKit';
  5. try {
  6. const exposureData: productViewManager.SKExposure = {
  7. adTechId: '20****e8',
  8. campaignId: '123456',
  9. destinationId: '10******',
  10. mmpIds: ['2f****5', '2f7***5'],
  11. serviceTag: '123***2',
  12. nonce: '123***2',
  13. timestamp: 1705536488,
  14. signature: 'MEQCIEQlmZ****zKBSE8QnhLTIHZZZ****ZpRqRxHss65Ko****JgJKjdrWdkL****juEx2RmFS7da****ZRVZ8RyMyUXg=='
  15. };
  16. const request: Want = {
  17. parameters: {
  18. bundleName: 'com.huawei.hmsapp.books',
  19. skExposure: exposureData
  20. }
  21. };
  22. productViewManager.loadProduct(getContext(this) as common.UIAbilityContext, request, {
  23. onError: (error: BusinessError) => {
  24. hilog.error(0, 'TAG', `loadProduct onError.code is ${error.code}, message is ${error.message}`);
  25. }
  26. });
  27. } catch (err) {
  28. hilog.error(0, 'TAG', `loadProduct failed.code is ${err.code}, message is ${err.message}`);
  29. }

productViewManager.loadProduct

loadProduct(context: common.UIAbilityContext, want: Want, callback?: ProductViewCallback): void

展示应用详情页,下载安装目标应用。使用Callback回调。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:4.1.0(11)

参数:

展开

参数名

类型

必填

说明

context

common.UIAbilityContext

调用方应用的上下文。

want

Want

展示应用详情页的请求参数。parameters 是该参数中的必填属性,为一个结构体。

该结构体包含两个属性:

  • bundleName,必填,表示需要展示详情页的应用包名。
  • skExposure,可选,表示需要传递登记归因来源的广告曝光数据。具体参考示例代码。

callback

ProductViewCallback

在加载应用详情页面时作为入参用于接收加载过程中的状态变化。若不填此参数,当加载应用详情页失败时,无法获取失败的错误码。

错误码:

以下错误码的详细介绍请参见通用错误码

展开

错误码ID

错误信息

401

Parameter error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { common, Want } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. import { hilog } from '@kit.PerformanceAnalysisKit';
  4. import { productViewManager } from '@kit.StoreKit';
  5. const TAG: string = 'LoadProduct';
  6. @Entry
  7. @Component
  8. struct LoadProduct {
  9. context = getContext(this) as common.UIAbilityContext;
  10. build() {
  11. Column() {
  12. Button("load_product")
  13. .onClick(() => {
  14. try {
  15. const request: Want = {
  16. parameters: {
  17. // 此处填入要加载的应用包名,例如: bundleName: "com.huawei.hmsapp.appgallery"
  18. bundleName: 'com.xxx'
  19. }
  20. };
  21. productViewManager.loadProduct(getContext(this) as common.UIAbilityContext, request, {
  22. onError: (error: BusinessError) => {
  23. hilog.error(0, TAG, `loadProduct onError.code is ${error.code}, message is ${error.message}`);
  24. },
  25. onAppear: () => {
  26. hilog.info(0, TAG, `loadProduct onAppear.`);
  27. },
  28. onDisappear: () => {
  29. hilog.info(0, TAG, `loadProduct onDisappear.`);
  30. }
  31. });
  32. } catch (err) {
  33. hilog.error(0, TAG, `loadProduct failed.code is ${err.code}, message is ${err.message}`);
  34. }
  35. })
  36. .width('100%')
  37. }
  38. .margin(16)
  39. .height('100%')
  40. .justifyContent(FlexAlign.Center)
  41. }
  42. }

productViewManager.loadService

loadService(context: common.UIAbilityContext, want: Want, callback?: ServiceViewCallback): void

展示元服务详情页,添加至桌面。使用Callback回调。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:4.1.0(11)

参数:

展开

参数名

类型

必填

说明

context

common.UIAbilityContext

调用方应用的上下文。

want

Want

加载元服务详情页面接口的请求参数。uri为必填参数,其值为元服务加桌链接。具体可参考下文中的示例代码。

说明

获取元服务加桌链接的说明文档

callback

ServiceViewCallback

在加载元服务详情页面时作为入参用于接收加载过程中的状态变化。若不填此参数,当加载元服务详情页失败时,无法返回失败的错误码;当加载元服务详情页成功时,点击加桌,无法获取加桌结果。

错误码:

以下错误码的详细介绍请参见通用错误码

展开

错误码ID

错误信息

401

Parameter error.

示例:

收起
自动换行
深色代码主题
复制
  1. import { common, Want } from '@kit.AbilityKit';
  2. import { BusinessError } from '@kit.BasicServicesKit';
  3. import { hilog } from '@kit.PerformanceAnalysisKit';
  4. import { productViewManager } from '@kit.StoreKit';
  5. const TAG: string = 'LoadService';
  6. @Entry
  7. @Component
  8. struct LoadProduct {
  9. context = getContext(this) as common.UIAbilityContext;
  10. build() {
  11. Column() {
  12. Button("load_service")
  13. .onClick(() => {
  14. try {
  15. const request: Want = {
  16. // 请输入元服务的加桌链接
  17. uri: 'store://appgallery.huawei.com/oper/addhome?referrer=xxxx&id=xxxx&installType=xxxx&s=xxxx'
  18. };
  19. productViewManager.loadService(getContext(this) as common.UIAbilityContext, request, {
  20. onReceive: (data: productViewManager.ServiceViewReceiveData) => {
  21. hilog.info(0, 'TAG', `Succeeded in loading Service onReceive.result is ${data.result}, msg is ${data.msg}`);
  22. },
  23. onError: (error: BusinessError) => {
  24. hilog.error(0, 'TAG', `loadService onError.code is ${error.code}, message is ${error.message}`)
  25. },
  26. onAppear: () => {
  27. hilog.info(0, 'TAG', `loadService onAppear.`);
  28. },
  29. onDisappear: () => {
  30. hilog.info(0, 'TAG', `loadService onDisappear.`);
  31. }
  32. });
  33. } catch (err) {
  34. hilog.error(0, 'TAG', `loadService failed.code is ${err.code}, message is ${err.message}`);
  35. }
  36. })
  37. .width('100%')
  38. }
  39. .margin(16)
  40. .height('100%')
  41. .justifyContent(FlexAlign.Center)
  42. }
  43. }

productViewManager.checkPinShortcutPermitted

checkPinShortcutPermitted(context: common.UIAbilityContext, shortcutId: string, want: Want, labelResName: string, iconResName: string): Promise<CheckShortcutResult>

以静态资源方式校验快捷方式是否允许加桌,使用Promise异步回调。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:5.0.2(14)

参数:

展开

参数名

类型

必填

说明

context

common.UIAbilityContext

调用方应用的上下文。

shortcutId

string

快捷方式ID,取值为长度不超过63字节的字符串。

want

Want

点击快捷方式后被拉起方的want信息。

labelResName

string

快捷方式显示在桌面名称的label资源索引名称。

iconResName

string

快捷方式显示在桌面图标的icon资源索引名称。

返回值:

展开

类型

说明

Promise<CheckShortcutResult>

Promise对象,返回快捷方式校验结果。

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

Parameter error.

1006620001

System internal error.

1006620002

Request to service error.

1006620003

Shortcut id already exists.

1006620004

The number of shortcuts has reached the maximum.

1006620005

Shortcut verification failed.

示例:

收起
自动换行
深色代码主题
复制
  1. import { productViewManager } from '@kit.StoreKit';
  2. import { hilog } from '@kit.PerformanceAnalysisKit';
  3. import type { common, Want } from '@kit.AbilityKit';
  4. import { BusinessError } from '@kit.BasicServicesKit';
  5. try {
  6. const uiContext = getContext(this) as common.UIAbilityContext;
  7. const shortcutId = "id_test1"; // 对应shortcuts标签中配置的shortcutId, 例如: "shortcutId": "id_test1"
  8. const labelResName = "shortcut"; // 对应shortcuts标签中配置的label资源名称, 例如: "label": "$string:shortcut"
  9. const iconResName = "aa_icon"; // 对应shortcuts标签中配置的icon资源名称, 例如: "icon": "$media:aa_icon"
  10. const want: Want = {
  11. bundleName: "com.example.store.kit.demo",
  12. moduleName: "entry",
  13. abilityName: "EntryAbility",
  14. parameters: {
  15. testKey: "testValue"
  16. }
  17. };
  18. let checkShortcutResult: productViewManager.CheckShortcutResult;
  19. productViewManager.checkPinShortcutPermitted(uiContext, shortcutId, want, labelResName, iconResName)
  20. .then((result: productViewManager.CheckShortcutResult) => {
  21. hilog.info(0x0001, 'TAG', `checkPinShortcutPermitted success result is ${JSON.stringify(result)}`);
  22. checkShortcutResult = result;
  23. }).catch((error: BusinessError) => {
  24. hilog.error(0x0001, 'TAG', `checkPinShortcutPermitted error. code is ${error.code}, message is ${error.message}`);
  25. })
  26. } catch (err) {
  27. hilog.error(0x0001, 'TAG', `checkPinShortcutPermitted failed, code is ${err.code}, message is ${err.message}`);
  28. }

productViewManager.checkPinShortcutPermitted

checkPinShortcutPermitted(context: common.UIAbilityContext, shortcutId: string, want: Want, label: string, foregroundIcon: string, backgroundIcon: string): Promise<CheckShortcutResult>

以自定义资源方式校验快捷方式是否允许加桌,使用Promise异步回调。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:5.0.2(14)

参数:

展开

参数名

类型

必填

说明

context

common.UIAbilityContext

上下文。

shortcutId

string

快捷方式ID,取值为长度不超过63字节的字符串。

want

Want

点击快捷方式后被拉起方的want信息。

label

string

快捷方式显示在桌面名称的文本,长度不超过255个字符。

foregroundIcon

string

快捷方式显示在桌面图标的沙箱地址,图标最大不超过100k,格式为png和webp。

backgroundIcon

string

预留,暂不支持,传入空字符串。

返回值:

展开

类型

说明

Promise<CheckShortcutResult>

Promise对象,返回快捷方式校验结果。

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

Parameter error.

1006620001

System internal error.

1006620002

Request to service error.

1006620003

Shortcut id already exists.

1006620004

The number of shortcuts has reached the maximum.

1006620005

Shortcut verification failed.

示例:

收起
自动换行
深色代码主题
复制
  1. import { productViewManager } from '@kit.StoreKit';
  2. import { hilog } from '@kit.PerformanceAnalysisKit';
  3. import type { common, Want } from '@kit.AbilityKit';
  4. import { BusinessError } from '@kit.BasicServicesKit';
  5. try {
  6. const uiContext = getContext(this) as common.UIAbilityContext;
  7. const shortcutId = `shortcutId_1`;
  8. const want: Want = {
  9. bundleName: "com.example.store.kit.demo",
  10. moduleName: "entry",
  11. abilityName: "EntryAbility",
  12. parameters: {
  13. testKey: "testValue"
  14. }
  15. }
  16. const label = "shortcut";
  17. const foregroundIcon = uiContext.filesDir + "/icon.png";
  18. const backgroundIcon = "";
  19. let checkShortcutResult: productViewManager.CheckShortcutResult;
  20. productViewManager.checkPinShortcutPermitted(uiContext, shortcutId, want, label, foregroundIcon, backgroundIcon)
  21. .then(result => {
  22. hilog.info(0x0001, 'TAG', `checkPinShortcutPermitted success result is ${JSON.stringify(result)}`);
  23. checkShortcutResult = result;
  24. }).catch((error: BusinessError) => {
  25. hilog.error(0x0001, 'TAG', `checkPinShortcutPermitted error. code is ${error.code}, message is ${error.message}`);
  26. })
  27. } catch (err) {
  28. hilog.error(0x0001, 'TAG', `checkPinShortcutPermitted failed, code is ${err.code}, message is ${err.message}`);
  29. }

productViewManager.requestNewPinShortcut

requestNewPinShortcut(context: common.UIAbilityContext, tid: string): Promise<void>

创建快捷方式加桌,使用Promise异步回调。

模型约束:此接口仅可在Stage模型下使用。

系统能力:SystemCapability.AppGalleryService.Distribution.Recommendations

起始版本:5.0.2(14)

参数:

展开

参数名

类型

必填

说明

context

common.UIAbilityContext

上下文。

tid

string

快捷方式校验结果CheckShortcutResult返回的tid。

返回值:

展开

类型

说明

Promise<void>

Promise对象。无返回结果的Promise对象。

错误码:

以下错误码的详细介绍请参见ArkTS API错误码

展开

错误码ID

错误信息

401

Parameter error.

1006620001

System internal error.

1006620003

Shortcut id already exists.

1006620004

The number of shortcuts has reached the maximum.

1006620005

Shortcut verification failed.

1006620006

The shortcut is not verified or has expired.

1006620007

User refused to add shortcut.

示例:z

收起
自动换行
深色代码主题
复制
  1. import { productViewManager } from '@kit.StoreKit';
  2. import { hilog } from '@kit.PerformanceAnalysisKit';
  3. import type { common } from '@kit.AbilityKit';
  4. import { BusinessError } from '@kit.BasicServicesKit';
  5. try {
  6. const uiContext = getContext(this) as common.UIAbilityContext;
  7. productViewManager.requestNewPinShortcut(uiContext, this.tid)
  8. .then(() => {
  9. hilog.info(0x0001, 'TAG', `requestNewPinShortcut success.`);
  10. }).catch((error: BusinessError) => {
  11. hilog.error(0x0001, 'TAG', `requestNewPinShortcut error. code is ${error.code}, message is ${error.message}`);
  12. })
  13. } catch (err) {
  14. hilog.error(0x0001, 'TAG', `requestNewPinShortcut failed, code is ${err.code}, message is ${err.message}`);
  15. }
在 API参考 中进行搜索
请输入您想要搜索的关键词