总结一下自定义phonegap插件的步骤:
首先在config配置文件中定义一个节点,用来系统寻找插件
包括:
名称:TestPlugin
路径:test.TestPlugin
<feature name="TestPlugin">
<param name="android-package" value="test.TestPlugin"></param>
<param name="onload" value="true"></param>
</feature>
定义js
包括:
名称:getback
win:函数成功回调函数
fail:函数失败回调函数
val:自定义参数,值传入的参数
插件名称:testplugin
插件里对应的方法:getback
var testjs={
getback:function(win,fail,val){
cordova.exec(win,fail,"TestPlugin","getback",[val])
}
}
java中实现方法(插件部分)
action:对应js里面的方法
args:对应传入的参数,即val,取值通过data.getstring(0),getint(1)等方式获取,可以多值传递
callbackcontext.success:方法执行成功回调函数,对应win(),返回的参数封装成json个数
public class TestPlugin extends CordovaPlugin{
public boolean execute(String action , JSONArray args , CallbackContext callbackContext) throws JSONException
{
if(action.equalsIgnoreCase("getback"))
{
String a = args.getString(0);
Map map = new HashMap();
map.put("a",a);
callbackContext.success(new JSONObject(map));
}
return true;
}
}
html中调用:
在成功的回调函数取值:data.属性,(定义的json object的属性)
传入参数:1
testjs.getback(function win(data){
var a = data.a;
alert(a);
},
function fail(){
},1
);
首先在config配置文件中定义一个节点,用来系统寻找插件
包括:
名称:TestPlugin
路径:test.TestPlugin
<feature name="TestPlugin">
<param name="android-package" value="test.TestPlugin"></param>
<param name="onload" value="true"></param>
</feature>
定义js
包括:
名称:getback
win:函数成功回调函数
fail:函数失败回调函数
val:自定义参数,值传入的参数
插件名称:testplugin
插件里对应的方法:getback
var testjs={
getback:function(win,fail,val){
cordova.exec(win,fail,"TestPlugin","getback",[val])
}
}
java中实现方法(插件部分)
action:对应js里面的方法
args:对应传入的参数,即val,取值通过data.getstring(0),getint(1)等方式获取,可以多值传递
callbackcontext.success:方法执行成功回调函数,对应win(),返回的参数封装成json个数
public class TestPlugin extends CordovaPlugin{
public boolean execute(String action , JSONArray args , CallbackContext callbackContext) throws JSONException
{
if(action.equalsIgnoreCase("getback"))
{
String a = args.getString(0);
Map map = new HashMap();
map.put("a",a);
callbackContext.success(new JSONObject(map));
}
return true;
}
}
html中调用:
在成功的回调函数取值:data.属性,(定义的json object的属性)
传入参数:1
testjs.getback(function win(data){
var a = data.a;
alert(a);
},
function fail(){
},1
);