iOS : Open maps from my custom app opens Google Maps in Safari instead of Google Maps app

标签 ios google-maps safari

我的自定义应用程序的其中一个页面上有一张 map 。如果您点击该 map (显示患者的位置),它应该会打开 Google map 应用程序,并显示从您所在的位置到该患者位置的方向。为此,我使用:

http://maps.google.com/maps?saddr=patientlocation&daddr=myaddress [其中患者位置我的地址是长/纬度]

在大多数手机上,它都能按预期工作。它会打开 Google map 应用程序并加载路线。

但由于我不知道的原因,有些手机会尝试打开 Safari 并访问 Google map 网站,即使我的 Google map 应用已安装且是最新的。这是一个问题,因为当您不在实际应用程序中时,导航效果不太好。 我尝试过重新启动手机、卸载/重新安装我的应用程序、卸载/重新安装 Google map 应用程序,但没有任何效果..

我已通过电子邮件将该链接发送到一些手机。 如果我点击 native iOS 电子邮件应用程序中的链接,它会打开 Safari 并加载 Google map 网站。 如果我点击 Gmail 应用中的链接,它会打开 Google map 应用。

我对 Apple/iOS 如何处理这个问题有点迷惑。

有人可以帮忙吗? 谢谢!

最佳答案

首先确保您在 Info 中的 LSApplicationQueriesSchemes 中添加了 comgooglemaps(强制)和 googlechromes(可选) .plist.

enter image description here

现在要打开加载了路线的 googlemaps,请在您的操作中调用以下函数。

我已经将虚拟纬度、经度分别设为 28.5239008、77.0846414,并保持 saddr 和 daddr 相同,以便从当前位置开始走路线。您可以根据需要提供自己的 saddr 和 daddr。

func openGoogleMaps() {
    if UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!) {
        UIApplication.shared.open(URL(string:
            "comgooglemaps://?saddr=&daddr=28.5239008,77.0846414&zoom=14&directionsmode=driving")!, options: [:]) { (completed:Bool) in
                print("Opened googlemaps")
        }
    } else {
        print("Can't use google maps. Opening browser");
        if UIApplication.shared.canOpenURL(URL(string: "https://maps.google.com/?saddr=&daddr=28.5239008,77.0846414")!) {
            UIApplication.shared.open(URL(string: "https://maps.google.com/?saddr=&daddr=28.5239008,77.0846414")!, options: [:], completionHandler: nil)
        }
    }
}

如果您的设备中没有 GoogleMaps 应用程序,它将重定向到浏览器。如果您也想在浏览器中加载路线,请在出现提示时向浏览器提供您的位置权限。

关于iOS : Open maps from my custom app opens Google Maps in Safari instead of Google Maps app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45107814/

相关文章:

ios - 如何在 iOS Meteor 应用程序的 native 浏览器中获取要打开的链接?

ios - 来自 CoreData 的浮点值(纬度和经度)之间的 NSPredicate

ios - Swift - 如何在 firebase 中添加已删除的观察者

ios - 使用阵列技术来操纵屏幕上的单个像素

javascript - 谷歌地图自动完成 Material 设计

android - 如何通过在 android Google MapV2 中拖动标记来创建自定义路线

ios - UITextfield 在 UIPageViewController (Swift) 中快速显示和关闭

google-maps - GoogleMaps 不会在 JSF 中呈现

python - 为什么 SafariDriver 不能点击特定元素,而 Chrome、FF、Edge 可以?

javascript - jQuery/javascript 和 WebKit 的 float 问题