在Chrome中使用调用打开手机应用程序拨号程序但不在测试phonegap应用程序中 - 单击不执行任何操作。另外mailto:和http:行为相同,在Chrome中不适用于app。
确切的html是:
<a id="btn_phone" href="tel:18001231234" rel="external" data-role="button" data-icon="phone"></a>
我添加到config.xml 并根据评论删除了全能 这让它为别人工作,但不是我的情况。
在配置文件中是这样的:
<access origin="tel:*" launch-external="yes"/>
<access origin="geo:*" launch-external="yes"/>
<access origin="mailto:*" launch-external="yes"/>
<access origin="sms:*" launch-external="yes"/>
<plugin name="cordova-plugin-whitelist" version="1"/>
<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 origin="*"/>
因此,基于我所阅读的所有内容,应该是我需要做的所有内容,但它仍然无效。
两个问题:
有没有人知道这方面的解决方法?
有没有办法在手机上调试这个以查看失败的原因?
感谢
答案 0 :(得分:4)
我一直在努力奋斗,并最终做了以下工作:
在HTML中:
<input type="button" href="tel:+1-800-555-1234“ class="phone-number" value="1-800-555-1234"/>
在Javascript中:
$(‘.phone-number’).bind(click, function(e) {
e.preventDefault()
var phoneLink = $(e.currentTarget).attr('href');
window.open(phoneLink, '_system', 'location=yes’);
}
答案 1 :(得分:0)
你的cordova版本是什么?我认为你的问题是白名单插件声明。
试试这个:
<feature name="Whitelist">
<param name="android-package" value="YOUR_WHITELIST_CORDOVA_PATH" />
<param name="onload" value="true" />
</feature>
有关如何在此配置白名单的更多信息: https://www.npmjs.com/package/cordova-plugin-whitelist
全部注意此答案不适用于CLI。此上下文中的<feature>
适用于SDK和使用IDE的用户。请参阅文档The feature Element
的 引用: 强>
如果使用CLI构建应用程序,则使用plugin命令启用设备API。这不会修改顶级config.xml文件,因此
<feature>
元素不适用于您的工作流程。如果您直接在SDK中工作并使用特定于平台的config.xml文件作为源,则可以使用
<feature>
标记来启用设备级API和外部插件。它们通常在特定于平台的config.xml文件中显示自定义值。