Phonegap电话:即使在白名单之后,URI也无法在Android上运行



html5 jquery Mobile Hybrid PhoneGap App on Android S6 Sport 使用PhoneGap 桌面和PhoneGap Developer App on Phone.不确定电话间隙版本(cli未正确安装,已尝试但打开提示出现错误),但这是最近(上周)安装。

在 chrome 中使用呼叫会打开电话应用拨号器,但不会在测试电话间隙应用中打开 - 单击不会执行任何操作。 还有mailto:和http:行为相同,在chrome中工作而不是在应用程序中工作。

确切的 html 是:

<a id="btn_phone" href="tel:18001231234" rel="external" data-role="button" data-icon="phone"></a>

我添加到配置中.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="*"/>

因此,根据我所阅读的所有内容,这应该是我需要做的,但它仍然不起作用。

两个问题:

  1. 有谁知道解决这个问题的方法?

  2. 有没有办法在手机上调试它以查看失败的原因?

谢谢

我一直为此苦苦挣扎,最终做了以下工作:

在 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’);
}

你的科尔多瓦版本是什么?我认为您的问题是白名单插件声明。

试试这个:

<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 的用户。请参阅文档 功能元素
报价:

如果使用 CLI 构建应用程序,请使用插件命令启用设备 API。这不会修改顶级 config.xml 文件,因此 <feature> 元素不适用于您的工作流。

如果您直接在 SDK 中工作并使用特定于平台的 config.xml 文件作为源,则可以使用 <feature> 标记来启用设备级 API 和外部插件。它们通常与自定义值一起出现在特定于平台的配置.xml文件中。

相关内容

最新更新