Javascript Phonegap-在Apple地图应用程序中打开导航方向
我有两个变量-目的地和来源-并且,使用Phonegap,我尝试使用jQuery打开外部iPhone Apple Maps应用程序,并提供方向 我使用的代码如下所示:Javascript Phonegap-在Apple地图应用程序中打开导航方向,javascript,jquery,ios,cordova,maps,Javascript,Jquery,Ios,Cordova,Maps,我有两个变量-目的地和来源-并且,使用Phonegap,我尝试使用jQuery打开外部iPhone Apple Maps应用程序,并提供方向 我使用的代码如下所示: var url = 'http://maps.apple.com/?q=daddr='+destination+'&saddr='+source; window.location = url; 然而,每当我点击相关按钮时,它就会在应用程序中打开一个新的视图,其中Google directions是一个网络视图,我无法返回到
var url = 'http://maps.apple.com/?q=daddr='+destination+'&saddr='+source;
window.location = url;
然而,每当我点击相关按钮时,它就会在应用程序中打开一个新的视图,其中Google directions是一个网络视图,我无法返回到原始应用程序
如何使用iOS默认地图应用程序打开链接?更改
http://maps.apple.com/?q=
只需映射:
就成功了
注意:请确保您编写
映射:
而不是映射:
as,后者将运行正确的应用程序,但它将在打开后立即崩溃(谢谢jprofitt)在我的情况下,从http://maps.apple.com/?q=
仅映射:?q=不解决问题
使用marker打开本机Apple Maps的工作方案如下:
maps://maps.apple.com/?q={latitude},{longitude}
完整工作代码:
window.location.href = "maps://maps.apple.com/?q="+lat+","+lng;
使用iOS7.1模拟器进行测试,可能在更高版本中不起作用。我没有机会测试。对不起
支持的Apple Maps参数可在以下位置找到:
归功于此SO链接:今天,我能够使用以下两种URL方案从Cordova应用程序中打开带有marker的本机Apple Maps应用程序:
maps://maps.apple.com/?q={latitude},{longitude}
及
在链接中:
<a href="maps://maps.apple.com?q={latitude},{longitude}">
<!-- OR -->
<a href="maps://?q={latitude},{longitude}">
该应用程序在iOS设备上运行,iOS版本为8.1.2,cordova iOS版本为3.7.0。代码
我在2018年成功地在iOS 11.2上使用以下iOS格式实现了这一点:
<a onclick="window.open('maps://?q=51.178847,-1.826160', '_system');">Open in Maps</a>
在我的项目中,
geo:
的意图从一开始就存在,所以我花了一段时间才弄明白为什么这在Android而不是iOS上工作。你可能想看看,我看到了这一点,但不幸的是,我用HTML和Javascript编写Phonegap,所以Objective-C不是我用来编译的语言,但我发现了我需要的解决方案,谢谢你的帮助@我也有同样的问题,你能给我看看你的解决方法吗?谢谢哈!我想知道是否有这样的东西(一个特定的协议处理程序),但没有找到任何文档-我不认为只是尝试!谢谢你发了这封邮件。很高兴知道这件事,我松了一口气!有趣的是,这与苹果的文档有着直接的矛盾:但这个答案是有效的!请注意:在iOS 7上,如果您使用map:
而不是map:
,它实际上会启动地图应用程序,但会立即崩溃。检查你的拼写。(本,如果你愿意的话,可以在你的答案中加上这个)@BenPearlKahan这是可行的,但是我怎样才能通过纬度和经度来代替名字呢?我使用的是不在iOS 12.3 Cordova 9中工作,请有任何想法!!不在iOS 12.3 Cordova 9中工作,请有任何想法!!在iOS 12.4 Cordova 6.1.1和安卓30 Cordova 8.0上的效果非常出色
window.location.href = "maps://maps.apple.com/?q="+lat+","+lng;
// OR
window.location.href = "maps://?q="+lat+","+lng;
<a onclick="window.open('maps://?q=51.178847,-1.826160', '_system');">Open in Maps</a>
<a onclick="window.open('geo:0,0?q=51.178847,-1.826160', '_system');">Open in Maps</a>
<allow-intent href="maps:*" />