Подтвердить что ты не робот

Кордова пытается набрать номер телефона

Я пытаюсь набрать номер телефона в iOS, но у меня есть только симулятор и iPod Touch для тестирования.

В коде используется что-то по строкам:

window.location.href = 'tel:01234567890';

Работает отлично с Android, но в iOS он умирает с:

Не удалось загрузить веб-страницу с ошибкой: URL-адрес не может быть показан

Теперь я понимаю, что это было задано раньше, но общий консенсус с того времени: "Это не работает, вам нужно будет использовать плагин". В течение некоторого времени не было много вопросов об этом, и какие вопросы, по-видимому, подсказывают, что он работает, когда делаете это программно (как указано выше с window.location.href). Я пробовал iOS PhoneDialer и более новую версию того же плагина, но у обоих есть ошибки в XCode (ARC forbids explicit message send of 'release') - немного фальсифицируйте, и я могу получить это но затем PhoneGap не находит плагин - он действительно чувствует, что я нажимаю на кирпичную стену с помощью этого метода, и я не могу поверить в что-то столь же простое, как это требует чего-то такого сверху.

Я знаю, что вы не можете автоматически набирать номер/автозанять номер по соображениям безопасности, но все, что мне нужно сделать, это открыть дозвонщик с предварительно заполненным номером, который, безусловно, не отличается от ссылки mailto:[email protected], открывающей ваш адрес электронной почты клиент с заранее заполненным отправителем?

Итак, мои вопросы:

  • Изменилось ли это с недавним обновлением PhoneGap, iOS или XCode?
  • Или это случай, когда я не могу сделать это на iPod или Simulator, и он отлично работает на iPhone?
  • Как я могу это исправить?:)
4b9b3361

Ответ 1

Вы не указали, какую версию Кордовы вы используете, поэтому я предполагаю версию > 3.

Убедитесь, что InAppBrowser, plugin начиная с версии 3, установлен, а затем откройте ссылку, вызвав ее через Javascript следующим образом:

window.open('tel:12345678', '_system')

_system откроет его с помощью собственного браузера, который, в свою очередь, откроет диалог вызова, если вы его используете против http://maps.apple.com/, он откроется в отображает приложение и аналогичные для других приложений, которые открываются для специальных URL-адресов.

Примечания:

  • Как описано в документах плагина InAppBrowser функция window.open не будет установлена ​​автоматически. Вы должны сделать это сами: window.open = cordova.InAppBrowser.open;. Вместо этого вы можете напрямую использовать cordova.InAppBrowser.open('tel:12345678', '_system');
  • Убедитесь, что в вашем номере нет пробелов (+ префикс в порядке). Например, вы можете использовать следующую функцию: Предполагая, что num является строкой.

Функции:

function placeCall(num) {
    if (window.cordova) {
        cordova.InAppBrowser.open('tel:' + num.replace(/\s/g,''), '_system');
    }
}

Ответ 2

Ниже код работает отлично для iphone: -

window.open('tel: 123456', '_system');

Симулятор не поддерживает дозвонщик. Не нужно тратить время.

Ответ 3

Убедитесь, что номер телефона в вашем href также не имеет никакого форматирования, так как на iOS это приводит к тому, что ссылка не будет работать в приложении PhoneGap. Например, используйте tel: 0390005555, а не tel: (03) 9000 5555.

Ответ 4

Я не считаю, что это проблема Кордовы. Я знаю, что в родной iOS вы не можете вызвать дозвонщик на симуляторе или на iPod touch. Вам нужно будет протестировать это на реальном iPhone.

Ответ 5

Я знаю, что это время позднего ответа.

Попробуйте добавить // к URL-адресу. Как этот tel://xxxxxxxxx и посмотрим, работает ли он.

Работала для меня в IOS 8.4, iPhone 6, 6+ на сегодняшний день.