HarmonyOS 跳转应用商店更新APP,这种写法是否已经被禁止?

刚查看文档,说API 11及以前版本,可以使用显式want拉起其他应用。从API 12开始,已不再支持三方应用使用该方式拉起其他应用。

现在跳转应用市场更新,API12是不支持这种模式了吗? 如果不支持,请提供一个跳转应用市场的demo

onUpdateVersionConfirm(){
  YTStore.setString(NYCommonConstants.APP_VERSION_UPDATE_DATE,this.newDate)
  YTLog.debug('跳转商店','我是立即更新按钮' )
  let context = getContext(this) as common.UIAbilityContext;
  context.startAbility({
    "deviceId": "",
    "bundleName": "com.huawei.appmarket",
    "abilityName": "",
    "uri":"appmarket://details?id=com.gdnybank.hm",
    "flags":wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION,
    "action": "android.intent.action.VIEW",
    "parameters": {},
  }).then((data) => {
    // console.info('onStartRemoteAbility finished, ' + "JSON.stringify(data)");
  }).catch(()=>{
    // console.info('onStartRemoteAbility failed, ' + JSON.stringify(err));
  })
}
阅读 451
1 个回答

目前跳转应用市场基本都是如下的方案,您参考一下

实现逻辑:基于context.startAbility方法拉起指定应用,并携带参数。其中type是固定配置值,uri是"store://appgallery.huawei.com/app/detail"拼接上id参数,才能拉起HarmonyOS应用市场详情页面。

uri: ‘store://appgallery.huawei.com/app/detail?id=’+appId

示例代码:

import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';

@Entry
@Component
struct Index {
  @State appId: string = '要跳转的AppID';
  controller: TextInputController = new TextInputController();
  build() {
    Row() {
      Column() {
        TextInput({ text: this.appId, placeholder: '请输入应用的appId', controller: this.controller })
          .width('90%')
          .onChange((value: string) => {
            this.appId = value
          })
        Button('点击跳转到HarmonyOS版应用市场详情页面')
          .margin({top: 50})
          .onClick(()=>{
            const want: Want = {
              uri: store://appgallery.huawei.com/app/detail?id=${this.appId}
            };
            const context = getContext(this) as common.UIAbilityContext;
            context.startAbility(want).then(()=>{
              //拉起成功
            }).catch(()=>{
              // 拉起失败
            });
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进