有没有人设法让PhoneGap的BarcodeScanning插件在PhoneGap 1.7.0上运行?
条形码扫描插件:https://github.com/phonegap/phonegap-plugins/tree/master/iOS/BarcodeScanner
问题是插件在添加时没有设置..
当我打电话给“alert(window.plugins.barcodeScanner);”时,我得到以下内容。
“未定义”
我试图找出插件无法添加的点,并在我了解更多后更新问题..
提前感谢任何有帮助的人......
以下更新的答案:
答案 0 :(得分:11)
优异,
该插件现在再次运行。
一个问题是插件的文档仍然说Cordova.plist
中的密钥应该是org.apache.cordova.barcodeScanner
,但显而易见的是它应该是com.cordova.barcodeScanner
。
答案 1 :(得分:6)
好的,所以经过一番探索并使用twitter PhoneGap插件作为一个例子,我设法让它工作!!
我用这个作为我的方法的基础,因为twitter上可爱的人更新了他们的插件,使用PhoneGap 1.7.0感谢上帝!!
Twitter PhoneGap插件: https://github.com/phonegap/phonegap-plugins/blob/master/iOS/Twitter/js/TwitterPlugin.js
以下是更新的barcodescanner.js代码:
var BarcodeScanner = function(){};
BarcodeScanner.prototype.isBarcodeScannerAvailable = function(response){
cordova.exec(response, null, "BarcodeScannerPlugin", "isBarcodeScannerAvailable", []);
};
BarcodeScanner.prototype.isBarcodeScannerSetup = function(response){
cordova.exec(response, null, "BarcodeScannerPlugin", "isBarcodeScannerSetup", []);
};
//-------------------------------------------------------------------
BarcodeScanner.Encode = {
TEXT_TYPE: "TEXT_TYPE",
EMAIL_TYPE: "EMAIL_TYPE",
PHONE_TYPE: "PHONE_TYPE",
SMS_TYPE: "SMS_TYPE",
CONTACT_TYPE: "CONTACT_TYPE",
LOCATION_TYPE: "LOCATION_TYPE"
}
//-------------------------------------------------------------------
BarcodeScanner.prototype.scan = function(success, fail, options) {
function successWrapper(result) {
result.cancelled = (result.cancelled == 1)
success.call(null, result)
}
if (!fail) { fail = function() {}}
if (typeof fail != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function")
return
}
if (typeof success != "function") {
fail("success callback parameter must be a function")
return
}
if ( null == options )
options = []
return PhoneGap.exec(successWrapper, fail, "com.cordova.barcodeScanner", "scan", options)
}
//-------------------------------------------------------------------
BarcodeScanner.prototype.encode = function(type, data, success, fail, options) {
if (!fail) { fail = function() {}}
if (typeof fail != "function") {
console.log("BarcodeScanner.scan failure: failure parameter not a function")
return
}
if (typeof success != "function") {
fail("success callback parameter must be a function")
return
}
return PhoneGap.exec(success, fail, "com.cordova.barcodeScanner", "encode", [{type: type, data: data, options: options}])
}
cordova.addConstructor(function() {
/* shim to work in 1.5 and 1.6 */
if (!window.Cordova) {
window.Cordova = cordova;
};
if(!window.plugins) window.plugins = {};
window.plugins.barcodeScanner = new BarcodeScanner();
});
答案 2 :(得分:3)
我刚刚将条形码扫描器添加到了cordova 2.3 - 它非常简单
复制必要的文件后,只需将以下行添加到config.xml
<plugin name="org.apache.cordova.barcodeScanner" value="CDVBarcodeScanner" />
答案 3 :(得分:0)
如果这有助于任何人: https://github.com/zeroasterisk/PhoneGap-BarcodeScanner-Example-iOS
具体做法是:
安装了插件(在少数路径中),但保留了一个有效的插件。实现了一个基本的JS扫描程序代码来演示功能:加载时自动运行,错误时自动重载,成功/失败/取消警报。
注意:barcodescanner.js和index.js上的注释都提到了我对define / require对象路径的自定义。经过几次排列后,我无法让演示/示例路径工作。