我有两个变量 - 目标和源 - 并且,使用Phonegap,我正在尝试使用jQuery打开带有路线的外部iPhone Apple Maps应用程序。
我正在使用的代码如下:
var url = 'http://maps.apple.com/?q=daddr='+destination+'&saddr='+source;
window.location = url;
每当我点击相关按钮时,它会在应用内打开一个新视图,其中Google方向为网络视图,我无法返回原始应用。
如何使用iOS默认地图应用程序打开链接?
答案 0 :(得分:24)
将http://maps.apple.com/?q=
更改为maps:
就可以了。
注意:确保你写maps:
而不是map:
,而后者将运行正确的应用程序,它会在打开后立即崩溃(感谢jprofitt)
答案 1 :(得分:5)
今天,我可以使用以下网址方案的两种方式使用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。
答案 2 :(得分:4)
在我的情况下,从http://maps.apple.com/?q=
更改为仅maps:?q=
无法解决问题。
使用标记打开原生Apple Maps的工作方案如下:
maps://maps.apple.com/?q={latitude},{longitude}
完整的工作代码:
window.location.href = "maps://maps.apple.com/?q="+lat+","+lng;
使用iOS7.1模拟器进行测试,可能无法在以后的版本中使用。我没有机会参加考试。遗憾。
可在此处找到支持的Apple Maps参数: https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
归功于此SO链接:Here
答案 3 :(得分:3)
我在iOS 11中使用以下格式设法在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上运行。