6

phonegap を使用してカメラを開くボタンを表示しています:

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 のみを使用してこれを行いたいのですが、ネイティブ コードは使用したくありません。

4

2 に答える 2

8

そのための公式プラグインがあります...バーコードスキャナーを確認してください

于 2013-07-26T10:22:11.563 に答える
7

私が使用した Javascript のみで Qr コードをデコードするライブラリがあります: https://github.com/LazarSoft/jsqrcode

これは Javascript のみのソリューションであるため、phonegap でも機能するはずです。

ここにオンライン デモがあります: http://webqr.com/

jsqrcode は Data-URI で動作するため、次のように使用できます。

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);
    }
于 2013-07-26T10:20:03.957 に答える