You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift代码无法唤起已安装的谷歌地图(iPhone7真机)求助

解决iPhone上无法通过Swift打开谷歌地图的问题

嘿,我之前碰到过完全一样的问题!iOS 9之后苹果新增了安全限制,直接用canOpenURL检测自定义URL Scheme会被拦截,除非你先在Info.plist里声明要查询的Scheme——这就是明明装了谷歌地图,却还是打印"Can't use comgooglemaps://"的核心原因。

第一步:配置Info.plist开启Scheme查询权限

你需要在项目的Info.plist文件里添加LSApplicationQueriesSchemes数组,把谷歌地图的Scheme加入白名单:

  1. 打开项目里的Info.plist,右键选择「Open As」→「Source Code」(或者直接在属性列表编辑器里操作)
  2. 如果用源码编辑,添加以下内容:
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>comgooglemaps</string>
</array>

如果用可视化编辑器,点击加号新增键,输入LSApplicationQueriesSchemes,类型选择Array,再在数组里添加一个String项,值填comgooglemaps即可。

第二步:修正URL中的转义字符

你代码里用了&amp;(HTML转义字符),但在Swift代码里应该直接用&,否则构造出的URL会无效。同时建议用可选绑定避免强制解包的崩溃风险,修正后的代码如下:

if let googleMapsURL = URL(string: "comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic") {
    if UIApplication.shared.canOpenURL(googleMapsURL) {
        UIApplication.shared.open(googleMapsURL, options: [:], completionHandler: nil)
    } else {
        print("Can't use comgooglemaps://")
    }
} else {
    print("Invalid Google Maps URL")
}

额外检查点

  • 确认iPhone上的谷歌地图是最新版本,旧版本可能对部分URL参数支持不佳
  • 核对Scheme拼写:谷歌地图的官方Scheme就是comgooglemaps,别写错字母

调整完这两步,应该就能正常唤起谷歌地图了!

内容的提问来源于stack exchange,提问作者Eric Chong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:16:09