我正在使用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");
}
应该这样做.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。