【问题标题】:tel: and mailto: links not working on iOS13 onlytel: 和 mailto: 链接仅在 iOS13 上不起作用
【发布时间】:2020-02-04 06:15:46
【问题描述】:

在我的 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 相关(解决使用 inappbrowser 无法打开链接的不同 iOS13 问题,在此处记录 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
})

有些帖子建议删除 &lt;allow-navigation href="*" /&gt;,但如果我这样做了,那么 $http GET 调用将不再适用于任何平台/操作系统版本(而且问题仍然没有解决)。

点击 XCode 控制台中的 tel: 和 mailto: 链接时,我看到了

CDVWebViewDelegate:当 loadCount=-1 时检测到重定向

但在早期的 iO​​S 版本中也会出现这种情况,所以我认为这无关紧要。

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

2019-10-06 22:11:28.960247+0100 GPCalc[89217:4657117] [默认] 无法打开 URL 电话:0044123456789:错误域 = NSOSStatusErrorDomain 代码 =-10814 "(null)" UserInfo={_LSLine= 247、_LSFunction=-[_LSDOpenClient openURL:options:completionHandler:]}

【问题讨论】:

    标签: cordova ionic2


    【解决方案1】:

    刚刚对此进行了测试,我也可以确认这适用于真实设备而不是模拟器。我正在使用InAppBrowser 来处理我所有的应用外绑定链接。这是我的代码示例:

    window.cordova.InAppBrowser.open("mailto:test@test.com", "_system", "location=yes");

    【讨论】:

      【解决方案2】:

      我可以确认它适用于装有 iOS 13.1.3 的物理设备,但不适用于模拟器(iOS 13.2.2、12.2、10.3.1)

      【讨论】:

        【解决方案3】:

        我看起来只是因为我正在使用 iOS 13.0 的模拟器,尽管由于某种原因我目前无法将我的 iPhone 6 升级到 iOS 13 以进行检查 - 但在此注明:@987654321 @ 我使用运行 iOS 11.4 的模拟器进行了测试,它也失败了,但它至少在 XCode 日志中给出了一个错误:

        无法加载网页并出现错误:无法显示网址 该行为在 iOS13.0 模拟器中不保留。

        如果有人可以验证这一点,我将不胜感激。干杯。

        【讨论】:

        • 您解决了这个问题吗?我也尝试了很多 config.xml 值的变体,但我仍然无法获得 :tel 和 :mailto 链接来工作
        猜你喜欢
        • 1970-01-01
        • 2015-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-25
        • 1970-01-01
        • 2018-04-14
        • 2013-04-03
        相关资源
        最近更新 更多