2016-12-02 275 views
0

我正在使用Cordova 6.4.0的Windows 7环境中安装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 protected]" 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:[email protected]?Subject=Email From the App" class="cu green email">E-Mail Us</a> 
</div> 

我试图改变电话号码的格式(除去“ - ”或添加一个“+”的数目的开始),以及一些其他的配置更改。这个应用程序是从零开始构建的,网页是从以前版本的应用程序添加的。旧版本不构建,因为它不使用gradle。

任何帮助,将不胜感激。

回答

1

电话:PHONE_NUMBER
调用进入 电话号码。如IETF RFC 3966中定义的有效电话号码 接受 。有效的实例包括以下 :

* tel:2125551212 
* tel: (212) 555 1212 

Android的浏览器使用电话应用来处理“电话”方案,由RFC 3966
限定点击喜欢的链接:

<a href="tel:2125551212">2125551212</a> 
Android上的

将显示电话应用程序,并且在未自动拨号的情况下预先输入2125551212的数字。

,看一下RFC3966

UPDATE

看到tel link android not working (Galaxy S5)

看来你需要添加一个许可,你有没有这一套?

<access origin="tel:*" launch-external="yes" /> in your config.xml?

更新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文件中创建自定义函数来打开应用程式内浏览器中的特殊环节

    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'); 
        } 
    

    };

  • 你在哪里上的数据自定义URL调用类似短信或电话的特殊链接,然后 通,让它打开本地浏览器 窗口,它反过来将推动原生应用程序来处理的特殊 网址的地方。

  • 几个例子:

    <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> 
    
    +0

    谢谢,但在原始文章的底部,我声明我试图删除没有影响的破折号,我也尝试了Luca的建议,但它不起作用。 – MikeL

    +0

    那么错误是什么?任何调试信息?会发生什么?可能会提供非'it不会工作',你的语法必须有一些事情,这个'应该'工作 – jdmdevdotnet

    +0

    当在应用程序中选择时,tel href链接没有响应,这就是我的意思,没有任何影响。就像Luca的建议一样,我同意这应该是有效的,这就是为什么我张贴在这里看看我可能错过了什么。 – MikeL

    0

    尝试这样的: "tel://""mailto://"

    +0

    添加使手机能够显示一个弹出说:“加载页面时出错”,而电子邮件抛出一个应用程序错误和崩溃的应用程序。 “有一个网络错误(文件:/// android_asset/www/mailto //:[email protected]?Subject =从应用程序发送电子邮件) – MikeL

    相关问题