PhoneGap中通过Plugin实现JS调用Java代码
2012-05-14 16:13
716 查看
1.Java代码
在Java代码中,要有一个继承自Plugin的类,重写其中的execute方法。
execute方法的返回值可以是JSONObject,在JS中对JSON进行解析。如下
参数中的action,用于在js调用中输入并与此方法匹配,稍后会提到。
2.在xml中注册
在\res\xml\plugins.xml文件中,加入
name指的是他的别名,value是他真正的类名
3.在js中注册此插件
在cordova-1.7.0.js加入如下函数
PhoneGap.addConstructor(function(){
PhoneGap.addPlugin('testAndroid01API',newtestAndroid01API());
});
4.在js中调用
5.在html中点击按钮测试
LogCat中会看到Java类中的Log
publicclasstest01extendsPlugin{ publicstaticfinalStringACTION="test"; @Override publicPluginResultexecute(Stringaction,JSONArraydata,StringcallbackId){ //TODOAuto-generatedmethodstub if(ACTION.equals(action)){ Log.e("test","testpluginjs->java~~~~"); Log.e("test","testpluginjs->java~~~~"); Log.e("test","testpluginjs->java~~~~"); Log.e("test","testpluginjs->java~~~~"); } returnnull; } }
在Java代码中,要有一个继承自Plugin的类,重写其中的execute方法。
execute方法的返回值可以是JSONObject,在JS中对JSON进行解析。如下
returnnewPluginResult(PluginResult.Status.OK,JSONObject);//返回成功 returnnewPluginResult(PluginResult.Status.ERROR,"error");//返回失败
参数中的action,用于在js调用中输入并与此方法匹配,稍后会提到。
2.在xml中注册
在\res\xml\plugins.xml文件中,加入
<pluginname="test01"value="包名.test01"/>
name指的是他的别名,value是他真正的类名
3.在js中注册此插件
在cordova-1.7.0.js加入如下函数
vartestAndroid01API=function(){}; testAndroid01API.prototype.test=function(params,success,fail){ returnPhoneGap.exec( function(args){ success(args); }, function(args){ fail(args); }, 'test01',//java类 'test',//action [params]//params ); };
PhoneGap.addConstructor(function(){
PhoneGap.addPlugin('testAndroid01API',newtestAndroid01API());
});
4.在js中调用
vartest01=function(){
window.plugins.testAndroid01API.test(null,function(r){},function(e){});
}
5.在html中点击按钮测试
<!DOCTYPEHTML>
<html>
<head>
<title>PhoneGap</title>
<scripttype="text/javascript"charset="utf-8"src="cordova-1.7.0.js"></script>
</head>
<body>
<h1>HelloWorld</h1>
<buttontype="button"onclick="test01()">ClickMe!</button>
</body>
</html>
LogCat中会看到Java类中的Log
相关文章推荐
- Cordova2.0(既PhoneGap)中通过Plugin实现Java和JS代码互相调用
- Cordova2.0(既PhoneGap)中通过Plugin实现Java和JS代码互相调用
- PhoneGap通过Plugin Js调用Java并互相传参
- 转 PhoneGap通过Plugin Js调用Java并互相传参
- 使用DWR实现JS调用服务端Java代码
- JNI开发第二篇通过反射实现C中调用java代码,并实现Log打印日志
- 使用DWR实现JS调用服务端Java代码
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- 通过java调用SVN API 实现代码的checkout update commit
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- Primefaces中通过RemoteCommand实现JS触发调用Java后台方法
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- JAVA与.NET的相互调用——通过Web服务实现相互调用(附原代码)
- WebView实现js与java代码的互相调用
- Cocos2d-x3.3RC0通过JNI调用Android的Java层代码,实现分享功能
- phonegap中java插件开发及javascript(js)调用java代码
- JAVA与.NET的相互调用——通过Web服务实现相互调用(附原代码)
- Android的WebView通过JS调用java代码
- zk框架实现zul的js代码调用服务器java命令