如何有人允许在cordova(IOS)中不支持的URL

at0kjp5o  于 2023-05-01  发布在  iOS
关注(0)|答案(2)|浏览(249)

我正在使用一个小的 cordova 应用程序,基本上打开我的网站使用InAppBrowser,在我的网站上,用户能够打电话给我们使用这条线:

<a href="tel:xxxxxxxxxxx">

我遇到了一个问题,IOS设备只当试图调用时,按钮不工作或没有响应。我用XCODE调试了一下,发现点击调用返回错误-

加载资源失败:不支持的URL

当然,我在网上搜索并尝试了多种解决方案,如:
1.更改配置XML和索引。html(Cordova)

config.xml:
 <allow-intent href="tel:*" />
 <allow-intent href="geo:*" />
 <allow-intent href="mailto:*" />
 <allow-intent href="sms:*" />
 <allow-intent href="market:*" />
 <allow-intent href="itms:*" />
 <allow-intent href="itms-apps:*" />
 <allow-navigation href="http://localhost" />
 <allow-navigation href="*" />
 <access origin="*" />
index.html
<meta http-equiv="Content-Security-Policy" content="default-src * cdvfile: filesystem: file: data: ; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; media-src *">

1.使用Safe.pipe(在我的网站上使用Angular 6)来清理URL

this.sanitize.bypassSecurityTrustResourceUrl(url)

1.遵循cordova白名单插件指令

$ cordova plugin add cordova-plugin-whitelist
$ cordova prepare
<!-- Allow tel: links to open the dialer -->
<allow-intent href="tel:*" />

我做了一些其他的检查,但以上是主要的,
感谢所有的帮助和支持:)

mlnl4t2r

mlnl4t2r1#

您可以尝试使用插件cordova-plugin-phone-call或按照this post手动修改
如果您希望捕获和处理不仅仅是tel,并使用默认应用程序打开,您可以查看cordova-plugin-openwith

9udxz4iz

9udxz4iz2#

我还有一个cordova-ios应用程序,它没有调出href=tel锚标记的电话拨号提示。FWIW我尝试了cordova-plugin-phone-call,但这对我不起作用-也不是任何配置。xml调整。让事情为我工作的是这个链接的信息:https://9to5answer.com/tel-sms-and-mailto-no-longer-working-in-android-after-upgrading-to-cordova-3-6-3。以下是我的前后对比,供同行参考:
之前(不工作):

<a href="tel:1123456789">Call Number</a>

工作后:

<a href="Javascript:app.openNativeAppWindow('tel:1123456789');">Call Number</a>
// NOTE: Use the link above to include the instantiation of 
// openNativeAppWindow in your app init object.
  • 我的设置供参考: cordova 11.0.0,cordova-ios:6.2.0和iPhone iOS 16。3.1*

相关问题