Я использую этот код для открытия карт 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: //».
Кто-нибудь может сказать мне, в чем проблема?
РЕДАКТИРОВАТЬ
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)
}
Покажите соответствующую часть вашего Info.plist, в которую вы добавили comgooglemaps.
И, конечно, это никогда не будет работать в симуляторе, и это будет работать только на реальном устройстве iOS, если на устройстве установлено приложение Google Maps.
@rmaddy, пожалуйста, проверьте правку
А у вас установлено приложение Google Maps на реальном устройстве?
@rmaddy нет, он не установлен, установлю его и попробую еще раз
Не удается открыть приложение, которое не установлено.
@rmaddy есть ли способ открыть его на веб-странице, если приложение не установлено
смешно, как приложение не открывается без установки, вы можете попробовать метод canOpen UIapplication.shared, если нет, перейдите по этой ссылке itunes.apple.com/us/app/google-maps-gps-navigation/… Примечание скопируйте ссылку из addressBar
Я не уверен, но я думаю, что если вы попытаетесь открыть URL-адрес, начинающийся с https://maps.google.com/..., тогда будет использоваться приложение Google Maps, если оно установлено, и Safari будет запущен, если нет.
@rmaddy Я изменил код, чтобы открыть Интернет, если приложение не найдено, Интернет работает нормально, но приложение все еще не открывается, попытаюсь перезагрузить телефон и ноутбук, и, надеюсь, он сработает, большое спасибо
1. Используйте один и тот же URL-адрес как в canOpenURL, так и в openURL. 2. Тестируете на реальном устройстве? 3. Вы установили на устройство приложение Google Maps? 4. Мое предложение использовать https://maps.google.com означало, что вам не нужно использовать или проверять "comgooglemaps".
@rmaddy он работает после того, как я установил карту Google, и я также обрабатываю, если приложение не открыто для открытия сафари с URL-адресом, спасибо за вашу помощь





Попробуй это
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.
какая версия swift?