1***@qq.com
1***@qq.com
  • 发布:2025-12-18 08:56
  • 更新:2025-12-18 08:57
  • 阅读:30

为什么ios有的部分手机不能跳转高德地图,有的手机就行?

分类:uni-app
    plus.runtime.openURL(`iosamap://poi?sourceApplication=app名称crmApp3.0&name=${options.ServiceAddress}&lat1=${options.lat}&lon1=${options.lng}&lat2=0&lon2=0&dev=0`, (e : any) => {  
        plus.nativeUI.alert(`本机未安装高德地图${JSON.stringify(e)}`);  
    });
2025-12-18 08:56 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

iOS设备上部分手机无法跳转高德地图的主要原因是URL Scheme白名单配置缺失。根据苹果安全策略,iOS 9+系统要求App必须在info.plist中声明LSApplicationQueriesSchemes才能检测第三方应用是否安装。

具体原因:

  1. 未配置URL Scheme白名单:在manifest.json中虽配置了高德地图Key,但未在iOS原生配置中添加iosamapLSApplicationQueriesSchemes数组,导致系统阻止应用检测高德地图是否安装
  2. 参数格式差异:部分iOS设备(尤其是新版本)对URL参数编码要求更严格,特殊字符未转义可能导致解析失败
  3. 高德SDK兼容性:旧版高德地图App可能不支持新参数格式(如lat1/lon1参数)

解决方案:

  1. 在manifest.json的app-plus -> distribute -> ios节点下添加:
    "urlschemes": [  
    {"scheme": "iosamap", "purpose": "高德地图跳转"}  
    ]
  2. 确保使用最新版高德地图App(建议≥12.0.0)
  3. 对URL参数进行encodeURIComponent处理:
    const url = `iosamap://poi?sourceApplication=好邦伲家政软件crmApp3.0&name=${encodeURIComponent(options.ServiceAddress)}&lat1=${options.lat}&lon1=${options.lng}&dev=0`;  
    plus.runtime.openURL(url, ...);

参考文档:iOS平台高德地图模块配置App跳转第三方地图规范

内容为 AI 生成,仅供参考

要回复问题请先登录注册