Developing a Plugin on Android 只拣实用的。。。
来源:互联网 发布:计算机编程书籍下载 编辑:程序博客网 时间:2024/05/02 07:02
Developing a Plugin on Android
http://docs.phonegap.com/en/2.5.0/guide_plugin-development_android_index.md.html#Developing%20a%20Plugin%20on%20Android
详细介绍请直接点上面的地址,我这里只拣最最实用的。
js中插件的使用需要以如下的形式调用方法,分别是回调成功函数,回调失败函数,布置在java端的服务,action(这个咋翻译。。),和参数列表。
exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
插件的部署,还用说么。。。
<plugin name="<service_name>" value="<full_name_including_namespace>"/>
接下来上实例。
1,部署插件,写在config.xml里。
<plugin name="Echo" value="org.apache.cordova.plugin.Echo" />
2,java端实现,就是收到页面传递过来的参数后做什么处理
import org.apache.cordova.api.CordovaPlugin;import org.apache.cordova.api.PluginResult;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;/** * This class echoes a string called from JavaScript. */public class Echo extends CordovaPlugin { @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action.equals("echo")) { String message = args.getString(0); //这里接收页面参数,按传参的顺序 this.echo(message, callbackContext); //传参时把当前的回调上下文传过去,必不可少 return true; } return false; } private void echo(String message, CallbackContext callbackContext) { if (message != null && message.length() > 0) { callbackContext.success(message); //json对象也可以当作参数传回到页面 // JSONObject jsono = new JSONObject(); // jsono.put("message",message); // callbackContext.success(jsono); } else { callbackContext.error("Expected one non-empty string argument."); } }}
3,js实现,就是页面的传值和回调,挺好理解的吧。
cordova.exec(successFunction, failFunction, "Echo","echo",[message]); //无参就写[],多个参数的顺序一定不能搞错function successFunction(e){ alert(e); //e就是传递的message //如果在callbackContext.success中传递的是json对象,这里也可以直接读取。 // e.message}function failFunction(e){ //与successFunction同理,取决于callbackContext.error中传递的信息。}
4,实用的就是这样,还有一点不能理解的是跟线程有关的,还是放在这里吧。第二种异步执行不跟上面讲的是一个效果么。。。
If you need to interact with the UI, you should use the following:@Overridepublic boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException { if ("beep".equals(action)) { final long duration = args.getLong(0); cordova.getActivity().runOnUiThread(new Runnable() { public void run() { ... callbackContext.success(); // Thread-safe. } }); return true; } return false;}If you do not need to run on the UI thread, but do not want to block the WebCore thread:@Overridepublic boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException { if ("beep".equals(action)) { final long duration = args.getLong(0); cordova.getThreadPool().execute(new Runnable() { public void run() { ... callbackContext.success(); // Thread-safe. } }); return true; } return false;}
以上。
- Developing a Plugin on Android 只拣实用的。。。
- Developing on Android
- Developing with cocos2d-x for android on Linux
- Android developing
- Securely Developing on Mobile
- Developing Apps on the OpenDaylight controller的问题
- android TV-Building TV Channels,Developing a TV Input Service
- Android TV -5.1- Developing a TV Input Service
- cordova-plugin-datepicker 添加只选择年月的模式(android)
- Developing a Web Application
- Developing a Test Specification
- Developing a Device Driver
- Developing a VoIP App
- Developing Workflows in VS: Part 1 - Workflow Objects and A Crash Course on Mechanics
- android实用小工具:只弹一次的toast,解决toast重复弹出的问题。
- Android酷炫实用的开源框架(UI框架)(转载,只为保存)
- Android developing environment
- ANDROID-Developing-tools-adb
- TortoiseGit 的使用
- LCD驱动
- CDN总结之三
- 第七周项目二——成员函数、友元函数和一般函数之区别
- 一点根据某点为圆心,旋转θ度
- Developing a Plugin on Android 只拣实用的。。。
- Stage 3 — Contributing through Others
- Repeater控件的使用
- AFNetworking 学习笔记
- xmpp smack源码分析前期准备——XmpPullParser【2】
- 数据库设计三大范式
- SQL也疯狂:MySQL绘制简单几何图形(2013-04-12)
- windows消息窗口
- oracle10G 需要G啊SGA空间