iOS 9 从应用程序重定向到苹果地图

Posted

技术标签:

【中文标题】iOS 9 从应用程序重定向到苹果地图【英文标题】:iOS 9 redirect to apple map from app 【发布时间】:2015-12-18 11:34:30 【问题描述】:

我使用的是 swift 2.0、XCode 7.2,部署目标是 9.2。 单击按钮时,我希望重定向到苹果地图以显示位置。以下是我的代码不起作用:

var addr = self.sortedDict.valueForKey("ADDRESS1").objectAtIndex(cellIndexPath!.row).objectAtIndex(0) as! String + "," + (self.sortedDict.valueForKey("CITY").objectAtIndex(cellIndexPath!.row).objectAtIndex(0) as! String) + "," + (self.sortedDict.valueForKey("STATE").objectAtIndex(cellIndexPath!.row).objectAtIndex(0) as! String)
    let strUrl: String = "http://maps.apple.com?address=" + addr
    let url: NSURL = NSURL(string: strUrl.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet())!)!

    if UIApplication.sharedApplication().canOpenURL(url) 
        UIApplication.sharedApplication().openURL(url)
     else 
        print(UIApplication.sharedApplication().canOpenURL(url))
    

我得到的错误是:

    -canOpenURL: failed for URL: "http%3A%2F%2Fmaps.apple.com%3Faddress=4702%20Katy%20Hockley%20Cut%20Off%20Rd,Katy,TX" - error: "Invalid input URL"
false

ios 9 中,您必须将您的应用想要在 Info.plist 中的 LSApplicationQueriesSchemes 键下查询的任何 URL 方案列入白名单。

我应该为苹果地图指定什么键?

【问题讨论】:

***.com/questions/21983559/… Apple 地图无法删除,何必检查canOpen - 只需打开网址 你的网址基本上是无效的,让它有效,然后它会工作。提示:不要对 URL 中根本不能编码的部分进行百分比编码 【参考方案1】:

您可以使用MKMapItem直接打开苹果地图,而不是打开一个URL

//your address to be opened
let address: String = "4702 Katy Hockley Cut Off Rd,Katy,TX"
let geocoder: CLGeocoder = CLGeocoder()
// Get place marks for the address to be opened
geocoder.geocodeAddressString(address, completionHandler: (placemarks: [CLPlacemark]?, error: NSError?) -> Void in
    if (placemarks?.count > 0) 
        if let placemark = placemarks?.first 
            let mkPlacemark  = MKPlacemark(placemark: placemark)

            //Create map item and open in map app 
            let item = MKMapItem(placemark: mkPlacemark)
            item.name = address
            item.openInMapsWithLaunchOptions(nil)
        

    
)

【讨论】:

以上是关于iOS 9 从应用程序重定向到苹果地图的主要内容,如果未能解决你的问题,请参考以下文章

带有多个目标的苹果或谷歌地图的 ios 导航

在 Apple 地图中搜索地址

Phonegap 苹果地图:从当前位置导航

谷歌地图从 1.9.2 升级到 1.10.1 时崩溃

iOS应用内跳转百度高德苹果地图

ios之苹果和百度地图的使用