J'ai cette application et je souhaite utiliser google maps ou Apple maps à ouvrir lorsque l'utilisateur appuie sur un bouton de mon application. Comment pourrais-je le faire? Existe-t-il un lien vers les cartes qui ouvrent l'application ou est-ce autre chose? Si vous pouvez m'orienter dans la bonne direction, ce serait vraiment utile. Merci! J'ai le bouton configuré ci-dessous comme ceci:
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....
}
Utilisez ceci:
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)
}
}
Vous pouvez trouver plus d'informations sur le schéma d'URL de google maps ici
Modifier: vous devez ajouter une clé à votre info.plist
pour que cela fonctionne.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlechromes</string>
<string>comgooglemaps</string>
</array>
Modifier: par mise à jour documents Google Maps ajout de "googlechromes" à afficher ci-dessus également.
Au bouton, cliquez (en action) sur la fonction d'appel "directions ()" avec le code suivant:
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/?q=@\(Float(event.addressLat)!),\(Float(event.addressLong)!)")! as URL)
}
}
Modifiez votre info.plist pour LSApplicationQueriesSchemes:
L'espoir vous aidera!