如何在javascript中的按钮单击中同步调用cordova插件操作
如何在java脚本中的按钮单击中同步调用cordova插件操作 我们需要同步地将每个javascript注释方法升级为插件格式 Java-我们自己的插件如何在javascript中的按钮单击中同步调用cordova插件操作,javascript,cordova,Javascript,Cordova,如何在java脚本中的按钮单击中同步调用cordova插件操作 我们需要同步地将每个javascript注释方法升级为插件格式 Java-我们自己的插件 public class ProjectUtility extends CordovaPlugin{ public static final String TAG = " Project Utility"; private final static String characterEncoding = "UTF-8";
public class ProjectUtility extends CordovaPlugin{
public static final String TAG = " Project Utility";
private final static String characterEncoding = "UTF-8";
DataMgnt dm = new DataMgnt();
public CordovaInterface cordovaInterface;
public ProjectUtility() {
System.out.println(" project utility");
}
/**
* Sets the context of the Command. This can then be used to do things like
* get file paths associated with the Activity.
*
* @param cordova The context of the main Activity.
* @param webView The CordovaWebView Cordova is running in.
*/
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
super.initialize(cordova, webView);
cordovaInterface=cordova;
Log.v(TAG,"Init CoolPlugin dsfsdf" +cordova.getActivity().getString(R.string.app_name));
}
public boolean execute(final String action, final JSONArray args, final CallbackContext callbackContext) throws JSONException {
final int duration = Toast.LENGTH_SHORT;
// Shows a toast
Log.v(TAG,"CoolPlugin received: dsfsdfdssdadfa"+ action);
cordova.getActivity().runOnUiThread(new Runnable() {
public void run() {
Toast toast = Toast.makeText(cordova.getActivity().getApplicationContext(), cordovaInterface.getActivity().getString(R.string.app_name), duration);
toast.show();
if(action.equals("imei"))
{
callbackContext.success(getImeiNumber());
}
else if(action.equals("app_name")){
callbackContext.success(appName());
}
else if(action.equals("service_id")){
callbackContext.success(getServiceId());
}
else
{
callbackContext.error("fail");
}
}
});
return true;
}
public String getImeiNumber()
{
TelephonyManager tm = (TelephonyManager) cordovaInterface.getActivity().getSystemService(Context.TELEPHONY_SERVICE);
String imeiId="";
try{
imeiId = tm.getDeviceId();
}
catch(Exception e)
{
imeiId="null";
e.printStackTrace();
}
return "12364589785451";
}
String getServiceId()
{
String service_id= cordovaInterface.getActivity().getString(R.string.service_id);
return service_id;
}
public String appName()
{
return cordovaInterface.getActivity().getString(R.string.app_name);
}
}
javascript:
utlity.js
我们初始化common Function以访问插件:
window.sdpproperty = function(key,arg_array ,callback) {
cordova.exec(callback, function(err) {
callback('error');
}, "ProjectUtility", key,arg_array);
};
index.html–我们正在访问window.property函数
此文件包含两个函数,
1) 我们需要像这样
2) 但是像这样工作不需要这种格式
3) 样品
你好,世界
我们需要这样的函数{
var服务id,
伊梅;
window.sdpproperty(“服务id”,[],函数(echoValue){
服务id=echoValue;
警报(“回拨执行器内部服务id”+echoValue)
});
window.sdpproperty(“imei”,[],函数(echoValue){
imei=回声值;
警报(“内部回拨执行imei”+echoValue)
});
样本(服务id,imei)
}
功能示例(服务id,imei){
警报(“样本函数服务Id”+服务Id+“Imei”+Imei内);
}
函数,但像这样工作不需要这种格式(){
var服务id,
伊梅;
window.sdpproperty(“服务id”,[],函数(echoValue){
服务id=echoValue;
window.sdpproperty(“imei”,[],函数(echoValue){
imei=回声值;
样本(服务id,imei)
});
});
}
。。。。。应用程序加载…
我们需要
我们不需要
从JS界面开始,必须具有:
cordova.exec(function(winParam) {},
function(error) {},
"service",
"action",
["firstArgument", "secondArgument", 42, false]);
你的定义是:
cordova.exec(callback,
function(err) { callback('error'); },
"ProjectUtility",
key,
arg_array);
因此,参数key
是要在本机端执行的操作
检查JAVA文件可用的操作有:
- authencation\u hash\u encrypt您正在使用哪个cordova插件?cordova 5.1.0版否,您在cordova应用程序中使用哪个?我们自己的插件和js文件已更新@beaverI updated my Question@beaver
cordova.exec(callback, function(err) { callback('error'); }, "ProjectUtility", key, arg_array);