ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – 使用PhoneGap在Android上自动呼叫预定义号码

2019-09-26 07:33:43  阅读:209  来源: 互联网

标签:android javascript jquery cordova phone-call


我正在使用PhoneGap和Jquery编写应用程序,在我的应用程序中我有一个应急按钮,点击它应该自动调用预定义的数字.我正在设法打开本机Android拨号器,但我仍然需要用户再次点击发送按钮拨号.

如何从应用程序直接拨打电话?

解决方法:

您需要write a plugin才能使用此功能.您需要做的第一件事是添加:

android.permission.CALL_PRIVILEGED

到您的AndroidManifest.xml.这将允许您拨打跳过拨号器应用程序的号码.插件界面需要一些JavaScript代码:

cordova.define("cordova/plugin/emergencydialer", 
  function(require, exports, module) {
    var exec = require("cordova/exec");
    var EmergencyDialer = function () {};

    var EmergencyDialerError = function(code, message) {
        this.code = code || null;
        this.message = message || '';
    };

    EmergencyDialer.CALL_FAILED = 0;

    EmergencyDialer.prototype.call = function(telephoneNumber,success,fail) {
        exec(success,fail,"EmergencyDialer", "call",[telephoneNumber]);
    };

    var emergencyDialer = new EmergencyDialer();
    module.exports = emergencyDialer;
});

然后你需要编写一些Java代码来打电话.您需要创建一个扩展Plugin类的新类,并编写如下的execute方法:

public PluginResult execute(String action, JSONArray args, String callbackId) {
    PluginResult.Status status = PluginResult.Status.OK;
    String result = "";

    try {
        if (action.equals("call")) {
            String number = "tel:" + args.getString(0);
            Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse(number)); 
            this.cordova.getActivity().startActivity(callIntent);
        }
        else {
            status = PluginResult.Status.INVALID_ACTION;
        }
        return new PluginResult(status, result);
    } catch (JSONException e) {
        return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
    }
}

无论你怎么称呼这个类,你都需要在res / xml / config.xml文件中添加一行,以便PluginManager可以创建它.

<plugin name="EmergencyDialer" value="org.apache.cordova.plugins.EmergencyDialer"/>

最后在你的JavaScript代码中,你需要创建它们的插件并像这样调用它:

function panicButton() {
    var emergencyDialer = cordova.require("cordova/plugin/emergencydialer");
    emergencyDialer.call("18005551212");
}

应该这样做.

标签:android,javascript,jquery,cordova,phone-call
来源: https://codeday.me/bug/20190926/1819329.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有