在我的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打开链接的不同iOS 13问题,在此处记录: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,但它也出现在早期iOS版本中运行良好的情况下,因此我认为它不相关。
从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:]}