12

我有两个变量 - Destination 和 Source - 并且,使用 Phonegap,我正在尝试使用 jQuery 打开带有方向的外部 iPhone Apple Maps 应用程序。

我正在使用的代码如下所示:

var url = 'http://maps.apple.com/?q=daddr='+destination+'&saddr='+source;
window.location = url;

但是,每当我单击相关按钮时,它都会在应用程序内打开一个新视图,其中包含 Google 方向作为 web 视图,并且我无法返回原始应用程序。

如何使用 iOS 默认地图应用程序打开链接?

4

4 回答 4

25

改变http://maps.apple.com/?q=只是maps:做了伎俩。


注意:确保您编写maps:而不是map:as,虽然后者将运行正确的应用程序,但它会在打开后立即崩溃(感谢 jprofitt)

于 2013-01-24T15:01:26.730 回答
6

今天,我能够使用以下两种 URL 方案从 Cordova 应用程序中打开带有标记的本机 Apple Maps 应用程序:

maps://maps.apple.com/?q={latitude},{longitude}

maps://?q={latitude},{longitude}

在一个链接中:

<a href="maps://maps.apple.com?q={latitude},{longitude}">
<!-- OR -->
<a href="maps://?q={latitude},{longitude}">

来自 JavaScript:

window.location.href = "maps://maps.apple.com/?q="+lat+","+lng;
// OR
window.location.href = "maps://?q="+lat+","+lng;

该应用程序在 iOS 设备上运行,iOS 版本 8.1.2,cordova-ios 版本为 3.7.0。

于 2015-01-12T19:25:28.277 回答
4

就我而言,从更改http://maps.apple.com/?q=为仅maps:?q=不解决问题。

使用marker打开原生Apple Maps的工作方案如下:

maps://maps.apple.com/?q={latitude},{longitude}

完整的工作代码:

window.location.href = "maps://maps.apple.com/?q="+lat+","+lng;

经测试可与 iOS7.1 模拟器配合使用,可能无法在以后的版本中使用。我没有机会测试。对不起。

可在此处找到支持的 Apple 地图参数: https ://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html

归功于此 SO 链接:这里

于 2014-08-13T17:07:53.690 回答
4

编码

我设法在 2018 年使用 iOS 中的以下格式在 iOS 11.2 上实现了此功能:

<a onclick="window.open('maps://?q=51.178847,-1.826160', '_system');">Open in Maps</a>

Android上的这种格式:

<a onclick="window.open('geo:0,0?q=51.178847,-1.826160', '_system');">Open in Maps</a>

配置权限

此外,不要忘记为您的config.xml文件添加权限,如下所示:

<allow-intent href="maps:*" />

在我的项目中,这个geo:意图从一开始就存在,所以我花了一段时间才弄清楚为什么它适用于 Android 而不是 iOS。

于 2018-04-06T11:52:14.543 回答