2014-01-20 4 views
1

Я разрабатываю собственное приложение ios с помощью Phonegap. Это приложение имеет функцию сканирования штрих-кода. Он отлично работал с телефоном версии 2.9.0. Теперь он не работает после обновления телефонной версии 3.3.0.phonegap 3.3 iOS BarcodeScanner модуль не найден

Он говорит: «Модуль 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 и загружается, когда приложение загружено. Я уверен. Также я не получаю ошибок при построении.

--Sridhar

+0

Вы используете CLI для создания своего проекта? какую платформу вы тестируете? – QuickFix

+0

Да, я использую CLI для создания проекта, добавления плагина и создания моего проекта. iOS и для iPhone5. –

+0

в phonegap 3 вы не должны включать phonegap.js, cordova.js или любой файл javascript плагина (за исключением случаев, когда плагин не совместим с плагином). может быть, у вас есть проблемы, потому что вы вручную добавили плагин и плагин также включает его? вы также можете попытаться удалить и переустановить плагин, используя cli. – QuickFix

ответ

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; 
}); 
Смежные вопросы