Открыть карту Google в iphone не работает

Я использую этот код для открытия карт Google в Swift, но он не работает.

if (UIApplication.sharedApplication().canOpenURL(NSURL(string:"comgooglemaps://")!)) {
    UIApplication.sharedApplication().openURL(NSURL(string:
        "comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
    print("Can't use comgooglemaps://");
}

Всегда отображается сообщение «Не могу использовать comgooglemaps: //».

  • Я добавил comgooglemaps в файл plist
  • Я перезапускал Xcode много раз
  • Я перезапустил ноутбук
  • Я пробовал на симуляторе и реальном устройстве

Кто-нибудь может сказать мне, в чем проблема?

РЕДАКТИРОВАТЬ

info.plist файл

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>comgooglemaps</string>
        <string>googlechromes</string>
            <string>googlephotos</string>
        <string>telprompt</string>
        <string>tel</string>
        <string>http</string>
        <string>https</string>
    </array>

РЕДАКТИРОВАТЬ2

let url1:NSURL = NSURL(string:"comgooglemaps://")!;
         let url2:NSURL = NSURL(string:"comgooglemaps://?saddr=&daddr=\(self.selectedItem.latitude),\(self.selectedItem.longitude)&directionsmode=driving")!;
         let url3:NSURL = NSURL(string:"https://www.google.com/maps?saddr=&daddr=\(self.selectedItem.latitude),\(self.selectedItem.longitude)&directionsmode=driving")!;


        if (UIApplication.sharedApplication().canOpenURL(url1))
        {
            UIApplication.sharedApplication().openURL(url2)
        } else {
            UIApplication.sharedApplication().openURL(url3)
        }

какая версия swift?

MohamadKh75 09.06.2018 02:17

Покажите соответствующую часть вашего Info.plist, в которую вы добавили comgooglemaps.

rmaddy 09.06.2018 02:20

И, конечно, это никогда не будет работать в симуляторе, и это будет работать только на реальном устройстве iOS, если на устройстве установлено приложение Google Maps.

rmaddy 09.06.2018 02:20

@rmaddy, пожалуйста, проверьте правку

Amira Elsayed Ismail 09.06.2018 02:24

А у вас установлено приложение Google Maps на реальном устройстве?

rmaddy 09.06.2018 02:24

@rmaddy нет, он не установлен, установлю его и попробую еще раз

Amira Elsayed Ismail 09.06.2018 02:30

Не удается открыть приложение, которое не установлено.

rmaddy 09.06.2018 02:30

@rmaddy есть ли способ открыть его на веб-странице, если приложение не установлено

Amira Elsayed Ismail 09.06.2018 02:31

смешно, как приложение не открывается без установки, вы можете попробовать метод canOpen UIapplication.shared, если нет, перейдите по этой ссылке itunes.apple.com/us/app/google-maps-gps-navigation/… Примечание скопируйте ссылку из addressBar

Sh_Khan 09.06.2018 02:35

Я не уверен, но я думаю, что если вы попытаетесь открыть URL-адрес, начинающийся с https://maps.google.com/..., тогда будет использоваться приложение Google Maps, если оно установлено, и Safari будет запущен, если нет.

rmaddy 09.06.2018 02:37

@rmaddy Я изменил код, чтобы открыть Интернет, если приложение не найдено, Интернет работает нормально, но приложение все еще не открывается, попытаюсь перезагрузить телефон и ноутбук, и, надеюсь, он сработает, большое спасибо

Amira Elsayed Ismail 09.06.2018 03:17

1. Используйте один и тот же URL-адрес как в canOpenURL, так и в openURL. 2. Тестируете на реальном устройстве? 3. Вы установили на устройство приложение Google Maps? 4. Мое предложение использовать https://maps.google.com означало, что вам не нужно использовать или проверять "comgooglemaps".

rmaddy 09.06.2018 03:20

@rmaddy он работает после того, как я установил карту Google, и я также обрабатываю, если приложение не открыто для открытия сафари с URL-адресом, спасибо за вашу помощь

Amira Elsayed Ismail 11.06.2018 01:17
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
13
808
1

Ответы 1

Попробуй это

private var latitude = 30.7333
private var longitude = 76.7794

/// Open Maps Action
@IBAction func openMapsAction(_ sender: Any) {
    self.openGoogleMaps()
}

//MARK: Open Google maps
func openGoogleMaps(){
   // Open in Google Maps
   if (UIApplication.shared.canOpenURL(NSURL(string:"comgooglemaps://")! as URL))
   {
       /// Driving google map
       UIApplication.shared.open(URL.init(string: "comgooglemaps://?saddr=&daddr=\(self.latitude),\(self.longitude)&directionsmode=driving")!, options: [:], completionHandler: nil)
   }
   else
   {
       print("Can't use Google Maps");
   }
}

Требуются ключи

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

Выход

Пожалуйста, объясните, как этот ответ помогает. Вы разместили тот же код с такой же соответствующей записью для LSApplicationQueriesSchemes. Пожалуйста, прочтите комментарии. Единственная причина, по которой OP не смог запустить Google Maps с тем, что они опубликовали в своем вопросе, заключалась в том, что у них не было установлено приложение Google Maps.

rmaddy 09.06.2018 08:02

Другие вопросы по теме