正式的ios包在uni-app中不能跳转百度高德地图

正式的ios包在uni-app中不能跳转百度高德地图

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 win10
HBuilderX 正式
HBuilderX版本 4.57
手机系统 iOS
手机版本号 iOS 16
手机厂商 苹果
手机机型 iphone 13
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

let url = iosamap://viewMap?sourceApplication=applicationName&poiname=A&lat=39.98848272&lon=116.47560823&dev=1; plus.runtime.openURL(url, (err) => { uni.showToast({ title: ‘出错了,请联系技术人员’, icon: ‘none’ }) })


### 预期结果:

正常跳转第三方地图

实际结果:

没有跳转,也没有走失败函数


### bug描述:

标准基座可以跳转百度高德腾讯地图,打成正式包就只有腾讯地图可以跳转,另外两个都不能,用了plus的plus.runtime.openURL打开,失败函数也没有被调用

更多关于正式的ios包在uni-app中不能跳转百度高德地图的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

有没有插件?把复现此问题的示例项目发出来。

更多关于正式的ios包在uni-app中不能跳转百度高德地图的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在iOS正式包中无法跳转百度/高德地图的问题,通常与iOS的安全机制有关。以下是关键点分析:

  1. LSApplicationQueriesSchemes配置问题
  • iOS要求在白名单中声明需要调用的URL Scheme
  • 在manifest.json的"plus"->“distribute”->"ios"节点下添加:
"urlschemewhitelist": ["iosamap","baidumap"]
  1. Universal Links适配
  • iOS 13+更推荐使用Universal Links
  • 高德地图要求配置Associated Domains
  • 在manifest的"plus"->“distribute”->"ios"添加:
"capabilities": {
  "entitlements": {
    "com.apple.developer.associated-domains": [
      "applinks:uri.amap.com"
    ]
  }
}
  1. 代码建议修改为
const openMap = (url, fallback) => {
  plus.runtime.openURL(url, (err) => {
    plus.runtime.openURL(fallback)
  })
}

// 调用示例
openMap(
  'iosamap://viewMap?params', 
  'https://uri.amap.com/marker?params'
)
回到顶部