我在Windows 7环境中使用Cordova 6.4.0组装Android 6.1.0应用程序,并且应用程序中用于发送呼叫或电子邮件的链接无法正常工作。该应用程序构建在我的桌面上,链接可在Chrome中运行。我正在通过使用ADB 1.0.36将应用程序加载到我的Galaxy S7进行测试。
我安装了白名单和inappbrowser插件,并在我的config.xml中添加了,如下所示。为掩盖公司信息做了轻微修改。
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.test.app" version="3.0" android-versionCode="3" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>AppName</name>
<description>
App Description
</description>
<author email="email@company.com" href="https://www.example.com">
Author Name
</author>
<content src="index.html" />
<access launch-external="yes" origin="tel:*" />
<access launch-external="yes" origin="mailto:*" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="android-minSdkVersion" value="14"/>
<platform name="android">
<icon density="ldpi" src="assets/icons/android/ldpi.png" />
<icon density="mdpi" src="assets/icons/android/mdpi.png" />
<icon density="hdpi" src="assets/icons/android/hdpi.png" />
<icon density="xhdpi" src="assets/icons/android/xhdpi.png" />
<icon density="xxhdpi" src="assets/icons/android/xxhdpi.png" />
<icon density="xxxhdpi" src="assets/icons/android/xxxhdpi.png" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
<plugin name="cordova-plugin-whitelist" spec="~1.3.0" />
<engine name="android" spec="~6.1.0" />
</widget>
这是一个无法正常工作的链接示例。
<div class="cuboxes">
<h2>Group list</h2>
<h3>( <span>800.555.5555</span> )</h3>
<a href="tel:1-800-555-5555" class="cu green hidetablet">Call Us</a>
<a href="mailto:mailto:person@example.com?Subject=Email From the App" class="cu green email">E-Mail Us</a>
</div>
我已尝试更改电话号码格式(删除&#34; - &#34;或在数字开头添加&#34; +&#34;)以及其他配置更改。这个应用程序是从头开始构建的,网页是从以前版本的应用程序添加的。旧版本没有构建,因为它不使用gradle。
任何帮助都将不胜感激。
答案 0 :(得分:1)
tel:phone_number
调用输入的 电话号码。有效的电话号码 正如IETF RFC 3966中所定义的那样 公认。有效的例子包括 以下内容:* tel:2125551212 * tel: (212) 555 1212
Android浏览器使用Phone应用程序来处理RFC 3966定义的“tel”方案 点击以下链接:
<a href="tel:2125551212">2125551212</a>
Android上的将调出手机应用并预先输入2125551212的数字而无需自动拨号。
查看RFC3966
<强>更新强>
请参阅tel link android not working (Galaxy S5)
似乎你需要添加一个权限,你有这个设置吗?
你的config.xml中有 <access origin="tel:*" launch-external="yes" />
吗?
更新2
请参阅“tel”, “sms”, and “mailto” no longer working in Android after upgrading to cordova 3.6.3
1. Add InAppBrowser plugin
**cordova plugin add org.apache.cordova.inappbrowser**
在JS文件中创建自定义函数以在InApp浏览器中打开特殊链接
var app = {
initialize: function() {
this.bindEvents();
},
bindEvents: function() {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
onDeviceReady: function() {
app.receivedEvent('deviceready');
},
openNativeAppWindow: function(data) {
window.open(data, '_system');
}
};
您正在调用特殊链接(如短信或电话)的地方 使用数据传递您的自定义网址,并让它打开本机浏览器 窗口反过来将推动本机App处理特殊 网址。
几个例子:
<br><br><input type="button" onClick="app.openNativeAppWindow('http://google.com')" value="Open Google"/>
<br><br><a onClick="app.openNativeAppWindow('geo://0,0?q=dallas')" data-rel="external">google maps</a>
<br><br><a onClick="app.openNativeAppWindow('geo:0,0?q=Bacau')">Geolocation Test</a>
<br><br><a onClick="app.openNativeAppWindow('geo:0,0?q=34.99,-106.61(Treasure)')">longitude & latitude with a string label</a>
<br><br><a onClick="app.openNativeAppWindow('geo:0,0?q=1600+Amphitheatre+Parkway%2C+CA')">street address Test</a>
<br><br><a onClick="app.openNativeAppWindow('sms:2125551212')">SMS</a>
<br><br><a onClick="app.openNativeAppWindow('mms:2125551212')">MMS</a>
<br><br><a onClick="app.openNativeAppWindow('tel:2125551212')">Open Phone Dialer</a>
答案 1 :(得分:0)
试试这个:
"tel://"
和"mailto://"