phonegap的二维码扫描功能的实现
来源:互联网 发布:钣金编程软件 编辑:程序博客网 时间:2024/04/29 21:20
前言:
1、我使用的phonegap版本是2.9.1,不太了解phonegap3.0以后的版本,不过可以保证的是phonegap2.0.0之后的按照下面的方法来实现二维码是没有问题的。
2、phonegap的插件都是放在github上托管的,到https://github.com/phonegap/phonegap-plugin-barcodescanner地址下载 BarcodeScanner
我是在 http://download.csdn.NET/detail/cs627565157/7882155 URL下载的免费BarcodeScanner
1、创建Android项目
将项目配置成phonegap项目,引入cordova.js、cordova.jar包,再添加xml\config.xml文件
2、导入BarcodeScanner-master\src\android\LibraryProject,并将LibraryProject 作为新创建项目的library
3、将BarcodeScanner.java文件移动到Android工程中
4、配置res/xml/config.xml文件,添加以下内容:
<feature name="BarcodeScanner" > <param name="android-package" value="com.phonegap.plugins.barcodescanner.BarcodeScanner" /> </feature>
5、配置AndroidManifest.xml
在application中添加以下activity
<!-- ZXing activities --> <activity android:name="com.google.zxing.client.android.CaptureActivity" android:screenOrientation="landscape" 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.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_VIDEO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <!-- 扫描二维码 --> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.FLASHLIGHT" /> <uses-feature android:name="android.hardware.camera" android:required="false" />
6、配置barcodescanner.js
实际上下载下来的这个barcodescanner.js是用不了的,我把我的这个JS文件贴到这里,可以复制之后然后自己新建一个barcodescanner.js。
/** * cordova is available under *either* the terms of the modified BSD license *or* the * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text. * * Copyright (c) Matt Kane 2010 * Copyright (c) 2011, IBM Corporation */ cordova.define("cordova/plugins/barcodescanner", function(require, exports, module) { var exec = require("cordova/exec"); var BarcodeScanner = function() {}; //------------------------------------------------------------------- BarcodeScanner.prototype.scan = function(successCallback, errorCallback) { if (errorCallback == null) { errorCallback = function() {}} if (typeof errorCallback != "function") { console.log("BarcodeScanner.scan failure: failure parameter not a function"); return } if (typeof successCallback != "function") { console.log("BarcodeScanner.scan failure: success callback parameter must be a function"); return } exec(successCallback, errorCallback, 'BarcodeScanner', 'scan', []); }; //------------------------------------------------------------------- BarcodeScanner.prototype.encode = function(type, data, successCallback, errorCallback, options) { if (errorCallback == null) { errorCallback = function() {}} if (typeof errorCallback != "function") { console.log("BarcodeScanner.scan failure: failure parameter not a function"); return } if (typeof successCallback != "function") { console.log("BarcodeScanner.scan failure: success callback parameter must be a function"); return } exec(successCallback, errorCallback, 'BarcodeScanner', 'encode', [{"type": type, "data": data, "options": options}]); }; var barcodeScanner = new BarcodeScanner(); module.exports = barcodeScanner; }); cordova.define("cordova/plugin/BarcodeConstants", function(require, exports, module) { module.exports = { Encode:{ TEXT_TYPE: "TEXT_TYPE", EMAIL_TYPE: "EMAIL_TYPE", PHONE_TYPE: "PHONE_TYPE", SMS_TYPE: "SMS_TYPE", } }; }); //------------------------------------------------------------------- var BarcodeScanner = cordova.require('cordova/plugin/BarcodeConstants'); if(!window.plugins) { window.plugins = {}; } if (!window.plugins.barcodeScanner) { window.plugins.barcodeScanner = cordova.require("cordova/plugins/barcodescanner"); }
7、创建barcode.html
<html> <head> <meta charset="UTF-8"><script src="cordova.js" type="text/javascript"></script> <script src="barcodescanner.js" type="text/javascript"></script> <script type="text/javascript"> 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); }); } </script> </head> <body> hello 二维码! <input type="button" onclick="scanCode()" value="扫描"/> <input type="button" onclick="encodeText()" value="转换文本"/> <input type="button" onclick="encodeEmail()" value="转换邮箱地址"/> <input type="button" onclick="encodePhone()" value="转换手机号"/> <input type="button" onclick="encodeSMS()" value="转换短信"/> </body> </html>
8、运行APP
参考的文章: http://blog.csdn.net/u014646984/article/details/25655725
0 0
- phonegap的二维码扫描功能的实现
- phonegap的二维码扫描功能的实现
- Android项目phonegap实现barcodescanner 二维码扫描的例子
- 对于ios7扫描二维码功能的实现
- IOS二维码扫描功能的实现
- 使用zxing实现二维码的扫描功能
- sencha-touch下借助phoneGap实现拍照,二维码的功能
- sencha-touch下借助phoneGap实现拍照,二维码的功能
- (二十)-二维码扫描功能的实现
- IOS 对于ios7扫描二维码功能的实现
- iOS开发之扫描二维码功能的实现
- iOS 原生态API实现二维码的扫描功能
- 【Android】Android实现扫描、生成二维码的功能
- android开发之集成zxing,二维码,以及扫描二维码的功能实现。带源代码下载
- ios7自带的扫描二维码功能
- iOS自带的二维码扫描功能
- 二维码功能的实现
- swift 实现二维码扫描功能
- 对'\0'的理解
- AOE图及拓扑排序
- JavaScript 绑定事件时的闭包问题
- 设计模式
- C#获取web.config连接数据库字符串
- phonegap的二维码扫描功能的实现
- 等号和equals的坑
- myeclipse工具栏给隐藏掉怎么显示出来
- linux下静态库和动态库的区别
- spring接收json格式的多个对象参数(变通法)
- Objective-c - 单个对象的内存管理(内存泄漏)
- Excel Common Function 2
- NOIP2002 提高组 复赛 均分纸牌
- System类-currentTimeMillis()