HarmonyOS 鸿蒙Next中如何实现跨包跳转

在 HarmonyOS 中,跨包跳转(即跨应用跳转) 通过context.startAbility实现,跳转的目标是另一个应用(如系统设置、浏览器、淘宝、支付宝等)。下面带大家一起看看HarmonyOS 鸿蒙Next中如何实现跨包跳转。

HarmonyOS 鸿蒙Next中跨包跳转到权限设置页面

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-inner-application-uiabilitycontext-V5#uiabilitycontextstartability

  openSettings(){
    let context = getContext(this) as common.UIAbilityContext
    let wantInfo: Want = {
      bundleName: 'com.huawei.hmos.settings',
      abilityName: 'com.huawei.hmos.settings.MainAbility',
      uri: 'application_info_entry',
      parameters: {
        pushParams: "com.example.harmonyos_device"
      }
    }
    context.startAbility(wantInfo).then(() => {
      console.log('location open setting page')
    }).catch((err:object) => {
      console.log('location open setting page failed')
    })
  }

HarmonyOS 鸿蒙Next中跨包跳转打开浏览器

https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-ability-58-V5

let context = getContext(this) as common.UIAbilityContext;
let want: Want = {
  action: 'ohos.want.action.viewData',
  entities: ['entity.system.browsable'],
  uri: 'https://www.huawei.com/'
};
context.startAbility(want)
.then(() => {
  console.error('Start browsableAbility successfully.');
})
.catch((err: BusinessError) => {
  console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
});

HarmonyOS 鸿蒙Next中跨包跳转打开应用市场更新应用

https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-ability-59-V5

startAppGalleryDetailAbility(context: common.UIAbilityContext, bundleName: string): void {
  let want: Want = {
    action: 'ohos.want.action.appdetail',
    uri: 'store://appgallery.huawei.com/app/detail?id=' + bundleName, //  bundleName为需要打开应用详情的应用的包名
  };
  context.startAbility(want).then(() => {
    console.info('Start Ability successfully.');
  }).catch((err: BusinessError) => {
    console.error(`Failed to startAbility. Code: ${err.code}, message: ${err.message}`);
  });
}
const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
const bundleName = 'com.taobao.taobao4hmos';
this.startAppGalleryDetailAbility(context, bundleName);

HarmonyOS 鸿蒙Next中跨包跳转打开高德/百度地图导航

高德官网导航地址: https://lbs.amap.com/api/amap-mobile/guide/android/navigation

百度官网导航地址https://lbsyun.baidu.com/faq/api?title=webapi/uri/harmony

坐标吸取器

https://lbs.amap.com/tools/picker

  carNavigation(){
    let want: Want = {
      uri: 'amapuri://route/plan?sid=BGVIS1&dlat=39.98848272&dname=B&slat=39.92848272&dlon=116.47560823&did=BGVIS2&slon=116.39560823&sname=A&t=0&sourceApplication=applicationName'
    }
    let context = getContext(this) as common.UIAbilityContext
    // this.context:一般是在 Component 组件里调用 getContext(this) as common.UIAbilityContext 获取到的 UIAbilityContext
    context.startAbility(want, (err: BusinessError) => {
      if (err.code) {
        // 处理业务逻辑错误
        console.error(`startAbility failed,code is ${err.code},message is ${err.message}`);
        return
      }
      // 执行正常业务
      console.info('startAbility succeed')
    })

  }

更多关于HarmonyOS 鸿蒙Next中如何实现跨包跳转的实战教程也可以访问 https://www.itying.com/category-93-b0.html

回到顶部