Как открыть собственное приложение GoogleMaps App & Waze

Я хочу открыть режим проезда в GoogleMaps и Waze в своем приложении. Как это сделать?

func showActionSheet(vc: UIViewController) {
    let actionSheet = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)

    actionSheet.addAction(UIAlertAction(title: "Google Maps", style: .default, handler: { (alert:UIAlertAction!) -> Void in
        self.openGoogleMaps()
    }))

    actionSheet.addAction(UIAlertAction(title: "Waze", style: .default, handler: { (alert:UIAlertAction!) -> Void in
        self.openWaze()
    }))

    actionSheet.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))

    vc.present(actionSheet, animated: true, completion: nil)
}

В настоящее время я реализовал 2 функции, но я хотел бы знать, как открыть в нативных приложениях для обеих карт

    func openGoogleMaps() {
//Don't want open in URL, want to open in native googlemaps app
        }

   func openWaze() {
  //Don't want open in URL, want to open in native Waze app
}

1 ответ

Решение

Сначала проверьте, доступны ли приложения Waze или Google map на телефоне пользователя. После этого вы можете открыть приложение Waze/Google из вашего приложения с помощью URL Scheeme.

func openGoogleMaps() {
   if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {  //First check Google Mpas installed on User's phone or not.
           UIApplication.shared.openURL(URL(string: "comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!) //It will open native google maps app.
   } else {
           print("Can't use comgooglemaps://");
    }
}


func openWaze() {
  if (UIApplication.shared.canOpenURL(URL(string:"waze://")!)) {  //First check Waze Mpas installed on User's phone or not.
       UIApplication.shared.openURL(URL(string: "waze://")!) //It will open native wazw maps app.
   } else {
           print("Can't use waze://");
   }
}

При компиляции с iOS SDK 9.0 и более поздних версий вы должны обновить файл списка свойств вашего приложения следующим образом, чтобы включить Waze:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>waze</string>
</array>
Другие вопросы по тегам