如何打开手机拨号器?

9
我会尽力帮助您翻译,以下是需要翻译的内容:

当单击按钮和/或锚标记时,我正在尝试在我的Worklight 6.2混合应用程序中启动电话拨号器。以下是我正在使用的代码。

按钮:

<button onClick='window.parent.location.href = "tel:+1xxxx"'>Tel</button>

锚点标签:
<a href='tel:+18001111111' class="ui-link">(800) 111-1111</a>  

当我们点击以下按钮/锚标签时,在Android和iOS中的行为如下。
在Android中:
显示一个带有消息的弹出窗口

应用程序错误 net::ERR_UNKNOWN_URL_SCHEME (TEL:+18001111111)

在iOS中:
点击事件没有响应。

你能提供完整的WL Studio版本吗?你可以在Eclipse的安装软件列表中获得它。 - jayakarthik
3个回答

35

你是在iOS模拟器中进行测试吗?如果是,你必须在设备上进行测试。
对于Android,您可以在模拟器或设备上进行测试。

以下内容适用于我在iOS设备上:

  • <a href="tel:+1-800-555-1234">打电话给这个号码</a>
    可以直接从HTML中调用

  • document.location.href = "tel:+375292771265";
    可以通过按钮点击时的函数来调用

至于Android,

由于Cordova存在安全漏洞(以及为了解决这些漏洞所做的修复措施),要使上述代码正常工作,您需要打开native\res\xml\config.xml并执行以下操作:

 - <access origin="*"/>
 + <access origin="tel:*" launch-external="true"/>

这是我的错误。到目前为止,我一直在iOS模拟器中测试,所以它没有响应。我很快会在iOS设备上测试该应用程序。但是当我在Android模拟器和设备上测试相同的问题时,问题仍然存在。您能否在Android设备或模拟器中测试您的示例应用程序?希望这可以帮助我。 - user3878988
我是指删除第一个并添加第二个。 - Idan Adar
嗨,Idan,我在我的Android应用程序上遇到了同样的错误。Worklight版本为6.1.0.2 Interim Fix - 6.1.0.01.20140922-2007。已经在Android清单文件中添加CALL_PHONE权限,并按照您指定的方式更新了<access origin>。 - Ragu
嗨,Idan。我在cordova.jar中看到了CordovaUriHelper.class文件。已经为此创建了PMR。保持联系。 - Ragu
我们在config.xml中有 '<access origin="tel:*" launch-external="true"/>'。只有在我们移除了 '<access origin="*"/>' 后它才能正常工作。 - Carl Prehn
显示剩余11条评论

1
这个 Cordova 插件是被使用的。
mx.ferreyra.callnumber 0.0.2 "Cordova Call Number Plugin"

代码

   <ion-fab left bottom>
    <a href="tel:number" class="button" ion-fab color="light">
        <ion-icon name="keypad"></ion-icon>
    </a>
</ion-fab>

0
如果您正在使用以下方式:<a href="tel:+1-800-555-1234">call this number</a>,但仍然出现ERR_UNKNOWN_URL_SCHEME错误,则可以使用cordova-plugin-invokedialer插件。

cordova-plugin-invokedialer-npm


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接