cordova - 电话 : and mailto: links not working on iOS13 only

标签 cordova ionic2

在我的 ionic v2 cordova 应用程序中用于启动邮件和电话应用程序的 mailto: 和 tel: 链接在 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:* and Sms:* links don't work on ios under cordova in 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 中我目前有:

    <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 调用将不再适用于任何平台/操作系统版本(并且问题仍未解决)。

当我在 XCode 控制台中单击 tel: 和 mailto: 链接时,我看到了

CDVWebViewDelegate: Detected redirect when loadCount=-1

但是当它在早期的 iO​​S 版本中工作时也会出现,所以我认为它不相关。

从 config.xml 中删除 <allow-navigation href="*" />(并中断所有设备上的 AJAX 调用)后,单击链接时我在 iOS 13 上看到以下错误:

2019-10-06 22:11:28.960247+0100 GPCalc[89217:4657117] [default] Failed to open URL tel:0044123456789: Error Domain=NSOSStatusErrorDomain Code=-10814 "(null)" UserInfo={_LSLine=247, _LSFunction=-[_LSDOpenClient openURL:options:completionHandler:]}

最佳答案

我可以确认它可以在装有 iOS 13.1.3 的物理设备上运行,但不能在模拟器(iOS 13.2.2、12.2、10.3.1)上运行

关于cordova - 电话 : and mailto: links not working on iOS13 only,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58261282/

相关文章:

cordova - 由于与 google gms 服务版本冲突,FCMPlugin 构建失败

php - 如何在phonegap中处理jsonp的输出?

javascript - API 在浏览器上工作,但在带有 phonegap 的设备上不工作

cordova - "ionic cordova build ios"不工作

angular - ionic 存储在 chrome 浏览器中不起作用

css - 如何在 Ionic2 的 Alert 中更改按钮的颜色

javascript - Ionic 3 指令不适用于 ionic2-autosize

android - 亚马逊 iap 和 phonegap

android - Cordova 想要 android-19,我有 android-20

android - ionic > 找不到模块 'ansi'