Phonegap - Открыть навигационные указания в приложении Apple Maps

У меня есть две переменные - Destination и Source - и, используя Phonegap, я пытаюсь использовать jQuery, чтобы открыть внешнее приложение Apple Maps для iPhone с указаниями.

Код, который я использую, выглядит следующим образом:

var url = 'http://maps.apple.com/?q=daddr='+destination+'&saddr='+source;
window.location = url;

Однако всякий раз, когда я нажимаю соответствующую кнопку, в приложении открывается новое представление с указаниями Google в качестве веб-просмотра, и я не могу вернуться к исходному приложению.

Как вместо этого открыть ссылку в приложении карты iOS по умолчанию?

4 ответа

Решение

Изменения http://maps.apple.com/?q= чтобы просто maps: сделал трюк.


NB: обязательно напишите maps: и не map: поскольку, в то время как последнее запустит правильное приложение, оно сразу же откроется после открытия (спасибо jprofitt)

Сегодня я смог открыть собственное приложение Apple Maps с маркером из приложения Cordova, используя ОБА из следующих схем URL:

maps://maps.apple.com/?q={latitude},{longitude}

А ТАКЖЕ

maps://?q={latitude},{longitude}

В ссылке:

<a href="maps://maps.apple.com?q={latitude},{longitude}">
<!-- OR -->
<a href="maps://?q={latitude},{longitude}">

Из JavaScript:

window.location.href = "maps://maps.apple.com/?q="+lat+","+lng;
// OR
window.location.href = "maps://?q="+lat+","+lng;

Приложение работает на устройстве iOS, iOS версии 8.1.2, и cordova-ios версии 3.7.0.

Код

Мне удалось заставить это работать в 2018 году на iOS 11.2, используя следующий формат в iOS:

<a onclick="window.open('maps://?q=51.178847,-1.826160', '_system');">Open in Maps</a>

И этот формат на Android:

<a onclick="window.open('geo:0,0?q=51.178847,-1.826160', '_system');">Open in Maps</a>

Конфигурация разрешений

Кроме того, не забудьте добавить разрешения на ваш config.xml файл вроде так:

<allow-intent href="maps:*" />

В моем проекте geo: намерение существовало с самого начала, поэтому мне потребовалось некоторое время, чтобы понять, почему это работает на Android, а не на iOS.

В моем случае меняется от http://maps.apple.com/?q= только maps:?q= не решая проблему.

Схема работы, которая открывает собственные карты Apple с маркером, выглядит следующим образом:

maps://maps.apple.com/?q={latitude},{longitude}

полный рабочий код:

window.location.href = "maps://maps.apple.com/?q="+lat+","+lng;

Протестировано работает с симулятором iOS7.1, может не работать в более поздней версии. У меня нет возможности проверить. Сожалею.

Поддерживаемые параметры Apple Maps можно найти здесь: https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html

Кредит идет по этой ссылке: здесь

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