如何在javascript中的按钮单击中同步调用cordova插件操作

如何在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";

如何在java脚本中的按钮单击中同步调用cordova插件操作

我们需要同步地将每个javascript注释方法升级为插件格式

Java-我们自己的插件

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