我的 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(解决使用inappbrowser无法打开链接的不同iOS13问题,记录在这里 https://github.com/OutSystems/cordova-plugin-inappbrowser/pull/9(。
我想我已经在这篇文章中尝试了所有建议组合(早在 iOS13 问世之前(,它们都不起作用 - Tel:* 和 Sms:* 链接在 phonegap 中科尔多瓦下的 ios 上不起作用?
我的 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>
在配置中.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:当 loadCount=-1 时检测到重定向
但是当它在早期的iOS版本中工作时也会出现,所以我认为它无关紧要。
从配置中删除<allow-navigation href="*" />
后.xml(并破坏所有设备上的 AJAX 调用(,单击链接时,我在 iOS 13 上看到以下错误:
2019-10-06 22:11:28.960247+0100 GPCalc[89217:4657117] [默认] 无法打开 URL 电话:0044123456789: 错误域=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(
我看起来只是因为我使用的是 iOS 13.0 的模拟器,尽管由于某种原因我无法将我的 iPhone 6 升级到 iOS 13 以便目前进行检查 - 但在这里注明: 科尔多瓦 iOS 模拟器 电话和邮件不起作用 我使用运行iOS 11.4的模拟器进行了测试,它也失败了,但是它至少在XCode日志中给出了错误:
无法加载网页,出现错误:无法显示 URL 该行为不会在 iOS13.0 模拟器中维护。
如果有人可以验证这一点,我将不胜感激。 干杯。
刚刚对此进行了测试,我也可以确认这适用于真实设备而不是模拟器。我正在使用 InAppBrowser 来处理我所有的应用程序外部绑定链接。这是我的代码示例:
window.cordova.InAppBrowser.open("mailto:test@test.com", "_system", "location=yes");