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