正式的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的安全机制有关。以下是关键点分析:
- LSApplicationQueriesSchemes配置问题:
- iOS要求在白名单中声明需要调用的URL Scheme
- 在manifest.json的"plus"->“distribute”->"ios"节点下添加:
"urlschemewhitelist": ["iosamap","baidumap"]
- Universal Links适配:
- iOS 13+更推荐使用Universal Links
- 高德地图要求配置Associated Domains
- 在manifest的"plus"->“distribute”->"ios"添加:
"capabilities": {
"entitlements": {
"com.apple.developer.associated-domains": [
"applinks:uri.amap.com"
]
}
}
- 代码建议修改为:
const openMap = (url, fallback) => {
plus.runtime.openURL(url, (err) => {
plus.runtime.openURL(fallback)
})
}
// 调用示例
openMap(
'iosamap://viewMap?params',
'https://uri.amap.com/marker?params'
)