
HarmonyOS 5 应用跳转 百度地图,高德地图,腾讯地图。
1,先判断 手机有没有安装对应app
// 高德:link = "amapuri://com.amap.hmapp/open"
// 百度:link ="baidumap://map/"
// 腾讯:link = 'qqmap://map/'
///判断是否 装 app , 以高德地图为例 返回 true:有安装 ,false:未有安装
async isAppInstalled() {
let link = 'amapuri://com.amap.hmapp/open';
try {
let data: boolean = bundleManager.canOpenLink(link);
return map_bean;
} catch (err) {
return false;
}
}
2,未安装的话可以 引导用户 跳转到 应用市场 安装
// 高德:bundleName = "com.amap.hmapp"
// 百度: bundleName = "com.baidu.hmmap"
// 腾讯:bundleName = "com.tencent.mapohos"
// 拉起应用市场对应的应用详情页面
startAppGalleryDetailAbility(context: common.UIAbilityContext, bundleName: string): void {
let want: Want = {
action: 'ohos.want.action.appdetail', //隐式指定action
uri: 'store://appgallery.huawei.com/app/detail?id=' + bundleName, // bundleName为需要打开应用详情的应用包名
};
context.startAbility(want).then(() => {
}).catch((error: BusinessError) =>
3,跳转到 地图app 规划路线
// 高德: gaode_want: Want = { uri: 'amapuri://route/plan?sid=BGVIS1&dlat='+lat+'&dname='+address+'&dlon='+lon+'&t=0&sourceApplication=applicationName' }
// 百度: baidu_want: Want = { uri: 'baidumap://map/direction?coord_type=gcj02&destination=name:'+address+' |latlng: '+lat+','+lon+' &mode=driving&src=andr.baidu.openAPIdemo' };
// 腾讯:tengxun_want: Want = { uri: 'qqmap://map/routeplan?type=drive&from=我的位置&fromcoord=0,0& to='+address+'&tocoord='+lat+','+lon+'&referer=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77' };
let want = { uri: 'amapuri://route/plan?sid=BGVIS1&dlat='+lat+'&dname='+address+'&dlon='+lon+'&t=0&sourceApplication=applicationName' };
// this.context:一般是在 Component 组件里调用 getContext(this) as common.UIAbilityContext 获取到的 UIAbilityContext
let uiAbilityContext = getContext(this) as common.UIAbilityContext;
uiAbilityContext.startAbility(want, (err: BusinessError) => {
if (err.code) {
// 处理业务逻辑错误
console.error(`startAbility failed,code is ${err.code},message is ${err.message}`);
return
}
console.info('startAbility succeed')
})
(小白学习,欢迎指导批评)
