PhoneGap(Cordova) :js调用native(2) ------Android篇
2014-11-30 16:10
567 查看
本文讲解如何使用PhoneGap(Cordova) 调用Android中的方法
http://blog.csdn.net/qqgrid/article/details/41623621
args: js端提交的参数
导入myPlugin.js
思路:通过onclick调用clickAction()方法,获得message的value后,调用前面myPlugin中定义的方法里面CalendarPlugin()方法,并传入参数,包括successFunction,failFunction,message
1. 使用原生的方法
在演示前介绍下不使用PhoneGap前是如何实现的http://blog.csdn.net/qqgrid/article/details/41623621
2.使用PhoneGap的方法
注意,例子使用的是cordova-2.6.0.js(1)创建自定义的Plugin
action:动作的标记args: js端提交的参数
public class MyPlugin extends CordovaPlugin { public static final String ACTION_TEST = "test"; @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { Log.e("execute","action:"+action); try { if (ACTION_TEST.equals(action)) { String message = args.getString(0); callbackContext.success("message :"+message); return true; } callbackContext.error("Invalid action"); return false; } catch(Exception e) { System.err.println("Exception: " + e.getMessage()); callbackContext.error(e.getMessage()); return false; } } }
(2)配置config.xml
在res/xml/config.xml中配置Plugin<plugins>
<plugin name="MyPlugin" value="com.phonegapdemo.MyPlugin"/>
</plugins>
(3)创建myPlugin.js
var MyPlugin = { CalendarPlugin: function (success, fail, message) //message为调用的参数,可按实际添加在下面[]中 { return PhoneGap.exec( function (args) {success(args);}, //返回成功调用function function (args) {fail(args);}, //返回失败调用的function 'CalendarPlugin', //java类 'test',//action [message] //传给android端excute的args参数 ); } ,test:function(){ //多个funcion添加方法 alert("test"); } };
(4)index.html代码
导入cordova-2.6.0.js导入myPlugin.js
思路:通过onclick调用clickAction()方法,获得message的value后,调用前面myPlugin中定义的方法里面CalendarPlugin()方法,并传入参数,包括successFunction,failFunction,message
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="format-detection" content="telephone=no" /> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> <script type="text/javascript" src="cordova-2.6.0.js"></script> <script type="text/javascript" src="js/myPlugin.js"></script> <script type="text/javascript"> function clickAction(){ var str = document.getElementById("message").value; MyPlugin.CalendarPlugin( function(r){alert("success | " +r);}, function(e){alert(e+" | error");}, str ); } </script> <title>Hello World</title> </head> <body> <input type="text" id="message"/> <input type="button" onclick="javaScript:clickAction();" value="click"> <span id="content"></span> </body> </html>
相关文章推荐
- Cordova(PhoneGap)通过plugins调用Android Native并回调
- PhoneGap(Cordova)之js调用本地native的方法
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- h5开发之cordova/phonegap自定义组件调用android native代码
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- XX程序媛学习笔记--Cordova(PhoneGap)通过plugins调用Android Native并回调
- PhoneGap(Cordova)之js调用本地native的方法 2
- PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码
- 【PhoneGAP学习】Android PhoneGap框架(3)--重要知识点的预先学习 (JS层与 Native 层之间通信)
- phoneGap开发android,JS调用android方法
- 支持android&ios高度自适应及JS相互调用的组件react-native-webview2
- React Native:JS调用Android本地方法
- 菜鸟学习React Native for Android 之通讯原理分析(JS调用Native)
- XX程序媛学习笔记--Cordova(PhoneGap)Android Native混合开发值传递
- Android+ionic +phonegap 调用摄像头 $cordovaCamera
- 支持android&ios高度自适应及JS相互调用的组件react-native-webview2
- [Android]WebView使用详解(一)——Native与JS相互调用(附JadX反编译)20160522
- Cordova(PhoneGap)Android Native混合开发值传递