在我的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无法打开链接,请参见此处{{3} }。
我想我已经尝试了这篇文章中的所有建议组合(距离iOS13推出很久了),但它们都不起作用-https://github.com/OutSystems/cordova-plugin-inappbrowser/pull/9
我的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:当loadCount = -1时检测到重定向
但是当它在早期的iOS版本中也可以显示时,所以我认为这无关紧要。
从config.xml中删除<allow-navigation href="*" />
(并在所有设备上中断AJAX调用)后,单击链接,我在iOS 13上看到以下错误:
2019-10-06 22:11:28.960247 + 0100 GPCalc [89217:4657117] [默认]无法打开URL tel:0044123456789:Error Domain = NSOSStatusErrorDomain Code = -10814“(null)” UserInfo = {_ LSLine = 247,_LSFunction =-[_ LSDOpenClient openURL:options:completionHandler:]}
答案 0 :(得分:1)
我似乎只是因为我正在使用适用于iOS 13.0的模拟器,尽管由于某种原因我目前无法将iPhone 6升级到iOS 13以便进行检查-但请注意:{{ 3}} 我使用运行iOS 11.4的模拟器进行了测试,但它也失败了,但是它至少在XCode日志中确实给出了错误:
无法加载网页,并显示以下错误:该网址无法显示 在iOS13.0模拟器中无法保持该行为。
如果有人可以验证这一点,我将不胜感激。干杯。
答案 1 :(得分:0)
我可以确认它可以在装有iOS 13.1.3的物理设备上运行,但不能在模拟器(iOS 13.2.2、12.2、10.3.1)上运行
答案 2 :(得分:0)
仅测试了一下,我也可以确认它可以在真实设备上运行,而不是在模拟器上运行。我正在使用InAppBrowser处理我所有的应用程序外绑定链接。这是我的代码示例:
window.cordova.InAppBrowser.open("mailto:test@test.com", "_system", "location=yes");