我正在使用Phonegap开发ios本机应用程序。此应用程序具有条形码扫描功能。它与phonegap版本2.9.0一起工作正常。现在,我升级phonegap版本3.3.0后它无法运行。
如果我使用以下代码,则说“找不到模块cordova /插件/ BarcodeScanner”
var scanner = cordova.require('cordova/plugin/BarcodeScanner');
scanner.scan(function1, function2);
它表示未定义如果我使用以下代码
window.plugins.barCodeScanner.scan(func1, func2);
它表示未定义如果我使用以下代码
cordova.plugins.barcodeScanner.scan(func1, func2);
我使用this link进行此实施。请告诉我,我做错了什么?
我已经加入了barcodescanner.js,并在加载应用时加载。我很有信心。 此外,我在构建时没有遇到任何错误。
- 斯里达尔
答案 0 :(得分:3)
它是固定的。 barcodescanner.js中存在运行时问题。我发现并修复了。它工作正常。更改的代码。
cordova.define("cordova/plugin/BarcodeScanner", function (require, exports, module) {
var exec = require("cordova/exec");
function BarcodeScanner() {
this.Encode = {
TEXT_TYPE: "TEXT_TYPE",
EMAIL_TYPE: "EMAIL_TYPE",
PHONE_TYPE: "PHONE_TYPE",
SMS_TYPE: "SMS_TYPE"
// CONTACT_TYPE: "CONTACT_TYPE", // TODO: not implemented, requires passing a Bundle class from Javascript to Java
// LOCATION_TYPE: "LOCATION_TYPE" // TODO: not implemented, requires passing a Bundle class from Javascript to Java
};
};
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.encode failure: failure parameter not a function");
return;
}
if (typeof successCallback != "function") {
console.log("BarcodeScanner.encode failure: success callback parameter must be a function");
return;
}
exec(successCallback, errorCallback, 'BarcodeScanner', 'encode', [
{"type": type, "data": data, "options": options}
]);
};
var = new BarcodeScanner();
module.exports = barcodeScanner;
});