Waze不会从Swift加载导航

我将Waze集成到我的Swift应用程序中,但当我点击按钮时,Waze打开但导航没有任何反应。 我很高兴看到应用程序,而不是启动导航。

这是代码:

@IBAction func openWazeAction(_ sender: Any) { // open waze if UIApplication.shared.canOpenURL(URL(string: "waze://")!) { let urlStr = String(format: "waze://ul?ll=%f,%f&navigate=yes", (selectedBorne?.location?.x)!, (selectedBorne?.location?.y)!) print(urlStr) UIApplication.shared.open(URL(string: urlStr)!) } else { UIApplication.shared.open(URL(string: "http://itunes.apple.com/us/app/id323229106")!) } } 

print(urlStr)返回正确的URL: waze://ul?ll=48.792914,2.366290&navigate=yes ,但Waze应用程序中没有任何反应。

(我把LSApplicationQueriesSchemes放在Info.plist文件中。)

这有什么不对?

我解决了这个问题。 Waze文档提供了错误的信息,因为他们的iOS示例没有按原样打开Waze应用程序。 它在移动设备上打开Safari,然后我们需要点击链接打开Waze。

正确的链接是:

 waze://?ll={latitude},{longitude}&navigate=yes 

我需要删除URL中的ul


迅速

 func navigateTo(latitude: Double, longitude: Double) { if UIApplication.shared.canOpenURL(URL(string: "waze://")!) { // Waze is installed. Launch Waze and start navigation let urlStr = String(format: "waze://?ll=%f,%f&navigate=yes", latitude, longitude) UIApplication.shared.open(URL(string: urlStr)!) } else { // Waze is not installed. Launch AppStore to install Waze app UIApplication.shared.open(URL(string: "http://itunes.apple.com/us/app/id323229106")!) } } 

Objective-C的

 (void) navigateToLatitude:(double)latitude longitude:(double)longitude { if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"waze://"]]) { // Waze is installed. Launch Waze and start navigation NSString *urlStr = [NSString stringWithFormat:@"waze://?ll=%f,%f&navigate=yes", latitude, longitude]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlStr]]; } else { // Waze is not installed. Launch AppStore to install Waze app [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/us/app/id323229106"]]; } }