Ionic - 在 Apple Maps App 中打开导航方向

Ionic - Open Navigation Directions in Apple Maps App

我有一个变量,目的地,我需要用图钉打开原生苹果地图才能到达目的地。我已经尝试过这里回答的解决方案:Phonegap - Open Navigation Directions in Apple Maps App 但那没有用。 如果我在测试时通过浏览器到达 "maps://xx.xxxx,yy.yyyy",它会打开一个 "unsafe:/maps://xx.xxxx,yy.yyyy"。它不会固定地图,也不会将我指向我选择的目的地。我该如何解决?

你可以尝试 2 件事

  1. 将此行添加到您的 config.xml

    <access origin="maps:*" launch-external="yes" />

  2. 使用带有 _system 选项的 inAppBrowser 插件:

    var ref = window.open('maps://?q=xx.xxxx,yy.yyy', '_system');

但是您应该检查地图应用程序的 url 方案 https://developer.apple.com/library/archive/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html#//apple_ref/doc/uid/TP40007899-CH5-SW1

如果您需要路线,您应该使用 daddr= 参数

我使用 LaunchNavigator cordova plugin 轻松实现了这个预期结果。当与 Geo-Location cordova 插件配对时,这在 iOS 和 Windows Phone 上效果最好。

要添加 LaunchNavigator 和 Geo-Location Cordova 插件:打开终端 window,导航到项目目录的根目录,然后 运行 以下两个命令。

cordova plugin add cordova-plugin-geolocation
cordova plugin add uk.co.workingedge.phonegap.plugin.launchnavigator 

之后,我通过将以下代码添加到我的项目来实现映射到给定 latitude/longitude 的功能。

var latitude = 39.7392, longitude = -104.9903;
launchnavigator.navigate([latitude, longitude]);

或者我通过在我的项目中添加以下代码来实现映射到地址字符串的功能

var destination = "Denver, Colorado";
launchnavigator.navigate(destination);

我发现这是向移动应用程序的最终用户提供 "click for directions" 功能的最简单方法。对于 iOS、Android 和 Windows Phone 应用程序,这对我来说效果很好(代码没有变化)。

如果您有地址字符串,例如“24 Prince Street, New York, NY”:

$scope.launchDirections = function(address) {
   window.location.href = "maps://maps.apple.com/?daddr=" + address;
}

如果你有 lat-longs纬度:-33.8880165,经度:151.2310152:

$scope.launchDirections = function(lat, long) {
   window.location.href = "maps://maps.apple.com/?q=" + lat + "," + long;
}

然后在你的html中调用它:

<div ng-click="launchDirections(address)">Show Directions</div>