phoneGap的Android下编写phonegap 插件

一、 javascript 端的编写

   第一个参数 成功的回调函数

  第二个参数 失败的回调函数

  第三个参数 是插件的类名称,也就是后台java文件的类名

  第四个参数 执行的 action 名称    对应的是后台java代码中的action名称

  第五个参数 传递的参数是一个数组

function helloworld(success,error,option){
  cordova.exec(success, error, "HelloWorld", "echo", option);//option也可以使用[xxx,xxx],他是一个数组
}
$(document).ready(function(){                      
         document.addEventListener("deviceready",onDeviceReady,false); 
      
});
function onDeviceReady(){     
    helloworld(function(succ){
        alert('成功'+succ);        
    },function(err){
        alert('失败:'+err);
    },['HelloMobileWorld','testWorld']);
}  

function helloworld(success,error,option){
    cordova.exec(success, error, "HelloWorld", "echo1", option);
}

二、注册插件

  在Android :res/xml/  这个目录下的配置文件下注册

<feature name="HelloWord">
   <param name="android-package" value="org.apache.cordova.helloword.HelloWord"/>
</feature>

三、 设置权限(需要调用权限的地方设置权限) 

<uses-permission android:name="android.permission.SEND_SMS" />

四、java 代码编写

  1、创建一个包列如:com.example.phonegap.plugin

  2、包里创建一个class 列如:HelloWorld

package com.example.phonegap.plugin;

import org.apache.cordova.api.CallbackContext;

import org.apache.cordova.api.CordovaPlugin;
import org.apache.cordova.api.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

public class HelloWorld extends CordovaPlugin {
    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
        if (action.equals("echo")) {   //action=echo  这里对应的就是JavaScript端的第四个参数 ,如果跟里面的参数不一样是不会执行下面的代码的
            String message = args.getString(0);  //获取第五个参数  数组中的元素  HelloMobileWorld            
       this.echo(message, callbackContext); return true; }else{ callbackContext.error("这不是一个echo操作"); return false; } } private void echo(String message, CallbackContext callbackContext) { if (message != null && message.length() > 0) { callbackContext.success(message); } else { callbackContext.error("Expected one non-empty string argument."); } } }
原文地址:https://www.cnblogs.com/LO-ME/p/4587119.html