2013-07-26 15 views
6

pokazuję przycisk, aby otworzyć aparat przy użyciu PhoneGap:Decode QRCode z PhoneGap i 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> 

Po kliknięciu przycisku chcę rozszyfrować kod QR i dostać pokazać wartość odkodowany na mojej stronie. Chcę to zrobić tylko za pomocą javascript i phonegap i nie chcę używać natywnego kodu.

Odpowiedz

7

Jest biblioteka, która dekoduje QR kod w JavaScript tylko użyłem: https://github.com/LazarSoft/jsqrcode

Ponieważ jest to tylko rozwiązanie JavaScript, powinien działać na PhoneGap też.

Jest demo online tutaj: http://webqr.com/

jsqrcode współpracuje z Danych URI, więc można go używać tak:

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

w kodzie:

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. przeszedłem przez łącze, ale chciałem dokładnie wiedzieć, kiedy powinienem wywołać metodę qrcode.decode(), gdy użytkownik otwiera kamerę za pomocą phonegapa. – user2549538

+0

Jeśli getUserMedia kiedykolwiek zostanie udostępniona na urządzeniach mobilnych ios/android, zgłaszam przyjęcie – Jorre

8

istnieje oficjalna wtyczka do tego ... sprawdź Barcode Scanner

+1

Wystąpił błąd 404 –

+1

@DavidW. To wygląda dobrze: [https://github.com/phonegap-build/BarcodeScanner](https://github.com/phonegap-build/BarcodeScanner) – Travis