2015-09-24 50 views
9

我有這個應用程序,我想用谷歌地圖或蘋果地圖打開時,用戶在我的應用程序中按下按鈕。我將如何能夠做到這一點?有沒有像打開應用程序的地圖的鏈接,還是其他東西?如果你能指出我正確的方向,那將是非常有用的。謝謝!我已經按鈕設置如下所示:當我按下應用程序中的按鈕時,我將如何打開Goog​​le地圖?

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { 

    for touch in (touches) { 
    let location = touch.locationInNode(self) 
    let node = self.nodeAtPoint(location) 

    if node.name == "openMaps" { 

    //code to open google maps or apple maps.... 

    } 

回答

46

使用此:

if node.name == "openMaps" { 
    let customURL = "comgooglemaps://" 

    if UIApplication.sharedApplication().canOpenURL(NSURL(string: customURL)) { 
     UIApplication.sharedApplication().openURL(NSURL(string: customURL)) 
    } 
    else { 
     var alert = UIAlertController(title: "Error", message: "Google maps not installed", preferredStyle: UIAlertControllerStyle.Alert) 
     var ok = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil) 
     alert.addAction(ok) 
     self.presentViewController(alert, animated:true, completion: nil) 
    } 
} 

你可以找到更多關於谷歌地圖URL方案here

編輯:您必須添加的關鍵到你的info.plist這個工作。

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>googlechromes</string> 
    <string>comgooglemaps</string> 
</array> 

編輯:每次更新Google Maps docs增加「googlechromes」plist以上也。

+10

這不適用於iOS9。您可能會收到此警告:「此應用不允許查詢計劃comgooglemaps」。您還需要列出您的方案LSApplicationQueriesSchemes –

+0

是否有另一種方法來代替它? – coding22

+0

我得到那個錯誤@LeoDabus說有沒有得到錯誤的另一種方式來做到這一點。 – coding22

2

在按一下按鈕(在行動)調用函數 「方向()」 與下面的代碼:

func directions() { 
    // if GoogleMap installed 
    if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) { 
     UIApplication.shared.openURL(NSURL(string: 
      "comgooglemaps://?saddr=&daddr=\(Float(event.addressLat)!),\(Float(event.addressLong)!)&directionsmode=driving")! as URL) 

    } else { 
     // if GoogleMap App is not installed 
     UIApplication.shared.openURL(NSURL(string: 
      "https://maps.google.com/[email protected]\(Float(event.addressLat)!),\(Float(event.addressLong)!)")! as URL) 
    } 
} 

編輯您的LSApplicationQueriesSchemes的info.plist:

enter image description here

希望能幫助!

相關問題