2015-09-24 11 views
9

Ich habe diese App und ich möchte Google Maps oder Apple Maps zu öffnen, wenn der Benutzer eine Taste in meiner App drückt. Wie könnte ich das machen? Gibt es einen Link zu den Karten, der die App öffnet, oder ist es etwas anderes? Wenn Sie mich in die richtige Richtung weisen können, wäre das sehr hilfreich. Vielen Dank! Ich habe die Schaltfläche unten, wie folgt ein:Wie kann ich Google Maps öffnen, wenn ich auf eine Schaltfläche in meiner App drücke?

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.... 

    } 

Antwort

46

verwenden:

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) 
    } 
} 

Sie weitere Informationen finden können über die Google-URL-Schema bildet here

Edit: Sie müssen einen Schlüssel hinzufügen zu Ihrem , damit dies funktioniert.

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

Edit: Per aktualisiert Google Maps docs "googlechromes" hinzugefügt oben auch plist.

+10

Dies funktioniert nicht für iOS9. Sie werden wahrscheinlich diese Warnung erhalten: "Diese App darf nicht nach Schema-Comgooglemaps fragen". Sie müssen auch Ihre Schemas auflisten LSApplicationQueriesSchemes –

+0

Gibt es eine andere Möglichkeit, es stattdessen zu tun? – coding22

+0

Ich bekomme diesen Fehler @Leodabus sagte es gibt einen anderen Weg, es zu tun, ohne den Fehler zu bekommen. – coding22

2

Auf Schaltfläche klicken (in Aktion) Anruffunktion "Richtungen()" mit folgendem Code:

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) 
    } 
} 

Bearbeiten Sie Ihren info.plist für LSApplicationQueriesSchemes:

enter image description here

Hoffnung helfen!

Verwandte Themen