PhoneGap插件Android Barcode Scanner精简版

移动开发
PhoneGap插件Android Barcode Scanner精简版是本文要介绍的内容,主要是来了解PhoneGap插件的使用,具体内容来看本文详解。

PhoneGap插件Android Barcode Scanner精简版是本文要介绍的内容,主要是来了解PhoneGap插件的使用,phonegap plugins里的barcode scanner,用的是ZXing。结果android版竟然要安装apk才能用,一看,这货直接Intent的…无法,从ZXing拉了源码下来自己整合,结果在浩瀚的java文件中哭了(T_T)。于是找了篇精简教程,照着画了下葫芦,然后整成phonegap插件,终于能凑合用用了,效果也还满意写。

如何开发一个android phonegap插件(要翻墙)

js部分

  1. PhoneGap.exec( success, failure, service, action, args );  

这个原型据说1.x以后会改成 PhoneGap.exec(options)。

success – 成功后的回调函数,回调参数根据java端返回的类型而定,一般为String。

failure – 失败后的回调函数,回调参数一般为error code。

service – 插件的名称。

action – 插件功能的名称。

args – 功能所需的参数,一个Object。

如果调用的插件函数无需参数,最后一个args必须是一个空数组[],不能不传、不能传null、也不能传{},否则会报错jsonError。

java部分

每个插件都要继承com.phonegap.api.Plugin,然后override execute方法,方法原型

  1. PlugResult execute(String action, JSONArray data, String callbackId); 

action – js调用时所传的action。

data – js调用时所传的args。

callbackId – 这个是用来回调的指定id,由js部分自动生成,并传递给java。

返回的是一个PlugResult的,如果是同步调用,直接在execute函数中返回一个带状态的标示的PlugResult即可,比如

  1. return new PlugResult(PluginResult.Status.INVALID_RESULT); 或者  
  2. return new PlugResult(PluginResult.Status.OK,  content);   content既是js success callback参数 

而如果是异步调用,则需要返回一个NO_RESULT状态的PlugResult,并设置keepCallabck,然后记录下callbackId,如下

  1. callback = callbackId;  
  2. PlugResult result = new PlugResult(PlugResult.Status.NO_RESULT);  
  3. result.setKeepCallback(true); 

之后,在需要回调时,调用

  1. this.success(new PlugResult(PlugResult.Status.OK, content), this.callback); 

android部分

需要使用插件的时候,要在res/xml/plugins.xml里加一个对插件的引用

  1. <plugin name=”" value=”"/> 

name是插件名称,也是js调用时的service名,注意这个必须和java的类名一致,否则报错class not found。

value就是包含package的完整类名。

然后设置AndroidManifest.xml,因为用Intent调用ZXing提供的扫描功能,所以在manifest里,找到<application>标签,增加一个<activity>,然后设置一些属性和intent-filter。注意activity的name要和java的类名相同,intent-filter的action name以及category name要和代码中调用的名字相同。

我在github上建立的一个项目,里面包含了所有源文件——phonegap用的是刚出炉的1.0版,barcode部分是用了上面提到的高人精简过的。

小结:PhoneGap插件Android Barcode Scanner精简版的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2010-09-17 17:41:54

2010-06-12 17:12:21

PPPOE协议

2010-09-16 08:14:00

2010-05-20 14:46:34

2010-09-17 15:36:21

2021-01-29 14:18:02

谷歌AndroidMicroDroid

2010-09-17 16:31:02

2011-03-31 10:21:52

CentosCactishell

2010-02-02 14:13:31

VMware Tool

2010-09-17 17:14:48

手工添加

2010-09-17 16:01:55

代码执行漏洞EXE文件

2023-03-10 10:47:06

Xubuntu发行版

2011-10-11 10:06:12

PhoneGap插件

2010-09-17 12:40:58

2024-10-14 13:07:40

Spring框架Boot

2010-09-16 10:14:35

2010-09-15 14:28:06

2011-12-23 10:02:37

PhoneGapAndroid插件

2020-12-27 10:57:30

QQ谷歌 Play移动应用

2010-09-26 15:41:17

网络安全
点赞
收藏

51CTO技术栈公众号