tel: и mailto: ссылки не работают только на iOS13 - PullRequest
1 голос
/ 07 октября 2019

Ссылки mailto: и tel: для запуска почтовых и телефонных приложений в моем приложении ionic v2 cordova не работают на iOS 13. Они работают на Android и в более ранних версиях iOS без проблем.

Я использую cordova 9.0.0 и cordova-ios 5.0.1

Кроме того, в случае, если они имеют отношение к cordova-plugin-whitelist 1.3.3 и cordova-plugin-inappbrowser 3.1.1-dev (для разрешениядругая проблема iOS13 с ссылками, не открывающимися с помощью inappbrowser, задокументирована здесь https://github.com/OutSystems/cordova-plugin-inappbrowser/pull/9).

Я думаю, что я попробовал все комбинации предложений в этом посте (что задолго до выхода iOS13), ни одна из них не работает - Tel: * и Sms: * ссылки не работают на ios под cordova в phonegap?

Мой HTML выглядит следующим образом:

<a class="item item-icon-left item-icon-right dark" href="tel:0044123456789" ng-click="trackTap('Telephone')">
    <i class="icon ion-ios-telephone"></i>
        Give us a call
    <i class="icon ion-ios-arrow-right"></i>
</a>

<a class="item item-icon-left item-icon-right dark" href="mailto:savings@lynxpurchasing.co.uk" ng-click="trackTap('savings@lynxpurchasing.co.uk')">
     <i class="icon positive ion-email"></i>
         Email us
     <i class="icon ion-ios-arrow-right"></i>
</a>

В config.xml Iв настоящее время есть:

    <allow-navigation href="*" />
    <allow-intent href="http://*/*"/>
    <allow-intent href="https://*/*"/>
    <allow-intent href="tel:*"/>
    <allow-intent href="sms:*"/>
    <allow-intent href="mailto:*"/>
    <allow-intent href="geo:*"/>

Я удалил:

    <access launch-external="yes" origin="tel:*" />
    <access launch-external="yes" origin="mailto:*" />

, поскольку я считаю, что они больше не требуются.

На другой странице приложения у меня есть:

$http({
    method: 'GET',
    url: 'http://www.domain.co.uk/app/app-json.php',
    timeout: 15000
})

В некоторых сообщениях предлагается удалить <allow-navigation href="*" />, но если я это сделаю, то вызов $ http GETбольше не работает на любой платформе / версии ОС (и проблема все равно не решена).

При нажатии на ссылки tel: и mailto: в консоли XCode я вижу

CDVWebViewDelegate: Обнаружено перенаправление, когда loadCount = -1

, но оно появляется, когда оно работает и в более ранних версиях iOS, поэтому я не думаю, что это актуально.

После удаления <allow-navigation href="*" />из config.xml (и прерывания вызова AJAX на всех устройствах) я вижу следующую ошибку на iOS 13 при переходе по ссылкам:

2019-10-06 22: 11: 28.960247 + 0100 GPCalc[89217: 4657117] [по умолчанию] Не удалось открыть URL tel: 0044123456789: Ошибка домена = код NSOSStatusErrorDomain = -10814 "(ноль)" UserInfo = {_ LSLine = 247, _LSFunction = - [_ LSDOpenClient openURL: параметры: завершение: Handler:]}

1 Ответ

1 голос
/ 07 октября 2019

Похоже, это потому, что я использую симулятор для iOS 13.0, хотя я не могу обновить свой iPhone 6 до iOS 13, чтобы проверить по какой-то причине в данный момент - но это отмечено здесь: Телефон и почта Cordova iOS Simulator не работают Я тестировал на симуляторе под управлением iOS 11.4, и он тоже не работает, однако он по крайней мере выдает ошибку в журналах XCode:

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

Если кто-нибудь сможет это проверить, я буду признателен. Приветствия.

...