欢迎访问 夜阑小雨 我的学习碎片档案,这里记录了我的学习内容和工作中经验,希望给您带去帮助。

phonegap二维码扫描–Android BarcodeScanner

Android开发 夜阑小雨 7320℃ 0评论

最近整合二维码扫描到phonegap的项目中,经过一天的折腾重要折腾好了。

其实也很简单,只不过对android的开发不熟悉所以出来很多问题。不过经过再网上查找相关文档重要解决了。

[目前插件已经支持到Phonegap 3.5以上],同时支持竖屏显示。以前都是横屏的。

3 2 1

首先获取phonegap的插件包

针对插件包,我们说明一下插件包里的LibraryProject文件夹是一个二维码的依赖库项目,所以需要把这个文件夹导入到Eclipse去作为第三方库存在。然后在集成:

最重要的一个步骤就是 添加 Android Library

这个我一直不知道怎么回事折腾了好久终于搞明白了

其实就是先把里面的Library作为一个单独的项目库,存在 然后再phonegap的项目中引入,这样在我们的phonegap的项目中就能使用扫描软件了。

具体怎么引入library 看这篇文章:

http://www.yelanxiaoyu.com/code/andriod/%E5%A6%82%E4%BD%95%E6%B7%BB%E5%8A%A0android-library.html

这是也是改插件正常使用的关键。

下来就按照插件的说明来添加代码程序。

  1. 拷贝 barcodescanner.js 到你的www文件夹,并在html页面里面引用方法。具体方法可以查看我的附件js文件。
  2. 拷贝BarcodeScanner.java 到你的src文件夹里面。
  3. 你的config.xml文件里面添加插件引用。
    ==============【phonegap3.x 插件引入方法】=====
    <feature name=”BarcodeScanner”>
    <param name=”android-package” value=”com.phonegap.plugins.barcodescanner.BarcodeScanner” />
    </feature>
  4. 添加AndroidManifest.xml 文件代码如下:
  5. 在<application/> tag之前
<!-- ZXing activities -->
<activity android:name="com.google.zxing.client.android.CaptureActivity"
          android:screenOrientation="portrait"
          android:clearTaskOnLaunch="true"
          android:configChanges="orientation|keyboardHidden"
          android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
          android:windowSoftInputMode="stateAlwaysHidden"
          android:exported="false">
  <intent-filter>
    <action android:name="com.phonegap.plugins.barcodescanner.SCAN"/>
    <category android:name="android.intent.category.DEFAULT"/>
  </intent-filter>
</activity>
<activity android:name="com.google.zxing.client.android.encode.EncodeActivity" android:label="@string/share_name">
  <intent-filter>
    <action android:name="com.phonegap.plugins.barcodescanner.ENCODE"/>
    <category android:name="android.intent.category.DEFAULT"/>
  </intent-filter>
</activity>
<activity android:name="com.google.zxing.client.android.HelpActivity" android:label="@string/share_name">
    <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

至此,二维码扫描就可以用了。
通过测试 改插件不仅能扫描二维码还能生成各种二维码。

附上我的js代码:
var scanCode = function() {
    window.plugins.barcodeScanner.scan(
        function(result) {
        alert("Scanned Code: " + result.text 
                + ". Format: " + result.format
                + ". Cancelled: " + result.cancelled);
    }, function(error) {
        alert("Scan failed: " + error);
    });
}

var encodeText = function() {

window.plugins.barcodeScanner.encode(

BarcodeScanner.Encode.TEXT_TYPE,

http://www.mobiledevelopersolutions.com”,

function(success) {

alert(“Encode success: ” + success);

}, function(fail) {

alert(“Encoding failed: ” + fail);

});

}

var encodeEmail = function() {

window.plugins.barcodeScanner.encode(

BarcodeScanner.Encode.EMAIL_TYPE,

“a.name@gmail.com”, function(success) {

alert(“Encode success: ” + success);

}, function(fail) {

alert(“Encoding failed: ” + fail);

});

}

var encodePhone = function() {

window.plugins.barcodeScanner.encode(

BarcodeScanner.Encode.PHONE_TYPE,

“555-227-5283”, function(success) {

alert(“Encode success: ” + success);

}, function(fail) {

alert(“Encoding failed: ” + fail);

});

}

var encodeSMS = function() {

window.plugins.barcodeScanner.encode(

BarcodeScanner.Encode.SMS_TYPE,

“An important message for someone.”, function(success) {

alert(“Encode success: ” + success);

}, function(fail) {

alert(“Encoding failed: ” + fail);

});

}


转载请注明:夜阑小雨 » phonegap二维码扫描–Android BarcodeScanner

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 我照着这样做了,做出来的是扫描条形码的啊,不是二维码
    小白菜2013-08-04 11:06 回复