2013-07-26 3 views
6

Я показываю кнопку, чтобы открыть камеру с помощью PhoneGap:Decode QRCode с PhoneGap и JavaScript

document.addEventListener("deviceready", loaded, false); 
function loaded() { 
    pictureSource = navigator.camera.PictureSourceType; 
    destinationType = navigator.camera.DestinationType; 
} 

function capturePhoto() { 
    navigator.camera.getPicture(getPhoto, onFail, { 
     quality : 50 
    }); 
} 
function getPhoto(imageData) { 
    alert(imageData); 
    var smallImage = document.getElementById('cameraPic'); 
    smallImage.style.display = 'block'; 
    smallImage.src = "data:image/jpeg;base64," + imageData; 
} 
function onFail(message) { 
    alert('Failed because: ' + message); 
} 
    <body> 
<div id="camera"> 
    <button class="camera-control" onclick="capturePhoto();">CapturePhoto</button> 
    <div style="text-align: center; margin: 20px;"> 
    <img id="cameraPic" src="" style="width: auto; height: 120px;">  <img> 
    </div></div> 
    </body> 

По щелчку кнопки я хочу, чтобы декодировать QR-код и получить показать расшифрованное значение на моей странице. Я хочу сделать это, используя только javascript и phonegap, и не хочу использовать какой-либо собственный код.

ответ

7

Там есть библиотека, которая расшифровывает Qr-код в JavaScript, только я использовал: https://github.com/LazarSoft/jsqrcode

Поскольку это только Javascript решение, он должен работать на PhoneGap тоже.

Там в онлайн демо здесь: http://webqr.com/

jsqrcode работы с Data-URIs, так что вы можете использовать его как это:

qrcode.decode("data:image/jpeg;base64," + imageData); 

В коде:

function getPhoto(imageData) { 
     alert(imageData); 
     var smallImage = document.getElementById('cameraPic'); 
     smallImage.style.display = 'block'; 
     qrcode.callback=function(){alert('Decoded:'+this.result)}; 
     qrcode.decode("data:image/jpeg;base64," + imageData); 
    } 
+0

Ya. я прошел через ссылку, но я хотел точно знать, когда я должен вызвать метод qrcode.decode(), когда пользователь открывает камеру с помощью телефонной затычки. – user2549538

+0

, если getUserMedia когда-либо поддерживается на мобильном устройстве ios/android Я выбрасываю сторону – Jorre

8

Eсть официальный плагин для этого ... check Barcode Scanner

+1

Ошибка 404 –

+1

@DavidW. Это выглядит правильно: [https://github.com/phonegap-build/BarcodeScanner](https://github.com/phonegap-build/BarcodeScanner) – Travis

Смежные вопросы