uniapp,app端打开第三方应用(高德地图、百度地图、腾讯地图,apple地图进行导航)

文章发布于2020年09月07日 15:19, 归类于: 前端

Native.js示例汇总

isApplicationExist,判断第三方程序是否已存在

openURL,调用第三方程序打开指定的URL

2020年12月07日修改文章

  • 修改判断是否安装高德地图百度地图的方式。
  • 修改调起高德地图百度地图的url。

1.设置urlschemewhitelist

打开HBuilder X,根目录配置文件manifest.json,app-plus->distribute->apple->urlschemewhitelist节点下添加需要判断是否安装的应用schema:

"urlschemewhitelist": ["baidumap", "qqmap", "androidamap"]

2.app打开第三方应用

uniapp的app端(android、ios)打开高德地图示例:

let os_name = plus.os.name.toLowerCase()

// 设备是否安装了高德地图
var hasAmap = false

// 地图位置信息参数
var name = '测试地点'
var latitude = 39.909
var longitude = 116.39742
var url = ''

if (os_name === 'ios') {
  // ios
  hasAmap = plus.runtime.isApplicationExist({
    pname: 'com.autonavi.minimap', // 应用包名
    action: 'iosamap://' // schema
  });
} else {
  // android
  hasAmap = plus.runtime.isApplicationExist({
    pname: 'com.autonavi.minimap', // 应用包名
    action: 'androidamap://' // schema
  });
}

if (hasAmap) {
  if (os_name === 'ios') {
    // ios
    url = `iosamap://viewMap?sourceApplication=applicationName&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`
  } else {
    // android
    url= `androidamap://viewMap?sourceApplication=appname&poiname=${name}&lat=${latitude}&lon=${longitude}&dev=0`
  }

  // URI 编码
  url = encodeURI(url)

  // 打开第三方应用
  plus.runtime.openURL(url);
}

其他第三方应用的schema或url

// 百度地图
var hasBaiduMap = plus.runtime.isApplicationExist({
  pname: 'com.baidu.BaiduMap',
  action: 'baidumap://'
});

if (hasBaiduMap) {
  if (os_name === 'ios') {
    // ios
    url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&content=${address}&src=ios.baidu.openAPIdemo&coord_type=gcj02`
  } else {
    // android
    url = `baidumap://map/marker?location=${latitude},${longitude}&title=${name}&coord_type=gcj02&src=andr.baidu.openAPIdemo`
  }
}

// 腾讯地图
var hasQqmap = plus.runtime.isApplicationExist({
  pname: 'com.tencent.map',
  action: 'qqmap://'
});

if(hasQqmap){
  // referer(去腾讯地图官网免费申请的key)
  url = `qqmap://map/marker?marker=coord:${latitude},${longitude};title:${name};addr:${address}&referer=VBLBZ-QLRKP-LS4D2-LLZQC-XM9BH-6TFIF`
}


// apple地图
let url = `https://maps.apple.com/?address=${address}&ll=${latitude},${longitude}&q=${name}`

转载请注明来源:《 uniapp,app端打开第三方应用(高德地图、百度地图、腾讯地图,apple地图进行导航)》- rojerYong's Blog

文章链接:https://www.eoway.cn /article/1599463155.html

如果此文摘取了你的原创,请联系本站管理员,将对此文修改、删除处理。

--END--
上一篇:uniapp,app(android、ios)打开应用设置页面 下一篇:uniapp,ios打开apple地图显示自定义地点信息