您是如何将WatchKit应用用户重定向到地图应用中的路线?

时间:2015-09-29 19:33:13

标签: mapkit watchkit watch-os-2

阅读文档,我认为有两种方法可以做到这一点。

第一个是the Apple Maps URL scheme,因为文档声称“您可以使用地图链接在iOS,OS X或WatchOS 2及更高版本的地图应用中打开该信息”。我尝试自己构建一个地图URL并将其传递给 - [WKExtension openSystemURL:],尽管文档说这个方法只处理 tel: sms: URL,因为它是我知道在watchOS 2上打开一个URL的唯一方法。这并没有结束。

经过进一步调查,我发现MKMapItem有一个我可以调用的 openMapsWithItems:launchOptions:方法。我从一个地标构建了一个地图项目,称之为方向模式设置为三个方向模式中的任何一个,当我调用它时没有任何反应。我在调试器中查看了我的地标和地图项,它们似乎已经初始化了。

“位置和地图编程指南”声明您必须在Xcode中的目标的“功能”选项卡中启用地图以使MapKit功能正常工作,所以我也尝试了这一点,并且两个选项均无效。

我对自己应该做的事感到茫然。我知道它应该是可能的,因为Workflow应用程序可以实现,但我无法弄清楚我做错了什么。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

在WatchOS 2发行说明中说明:

  

MKMapItem方法openInMapsWithLaunchOptions:不起作用。

链接: https://developer.apple.com/library/prerelease/watchos/releasenotes/General/RN-watchOSSDK-2.0/index.html

您可以使用WKInterfaceMap并为其添加注释。 如果用户点击它,他将被定向到地图应用程序并且可以启动路由。 Swift示例:

let mapLocation = CLLocationCoordinate2DMake(latitude, longitude);
let coordinateSpan = MKCoordinateSpanMake(0.1, 0.1);

self.map.addAnnotation(mapLocation, withPinColor: WKInterfaceMapPinColor.Green)
self.map.setRegion(MKCoordinateRegion(center: mapLocation, span: coordinateSpan))
相关问题