Laya QRコード

3331 ワード

QRコードを追加で読む技術の基礎は何ですか?
一、qrcode.js
QRCode.js参照:JavaScriptを使用してQRコードQRCode.jsを生成するJavaScriptライブラリです.主にDOMのラベルを取得し、HTML 5 Canvasで描画することで、ライブラリに依存しません.

var qrcode = new QRCode(document.getElementById("qrcode"), { width : 100, height : 100 }); function makeCode () { var elText = document.getElementById("text"); if (!elText.value) { alert("Input a text"); elText.focus(); return; } qrcode.makeCode(elText.value); } makeCode(); </code></pre> <p> , Div, <code>makeCode(xxx)</code></p> <pre><code><div id="qrcode" style="width:100px; height:100px; margin-top:15px;" title="http://www.baidu.com"> <canvas width="100" height="100" style="display: none;"> </canvas> <img src="data:image/png;base64,........" style="display: block;"> </div> </code></pre> <p> ,div canvas img </p> <h5> 、Laya</h5> <p> <br> js </p> <pre><code> <!-- --> <!--jsfile--Custom--> <script type="text/javascript" src="libs/min/qrcode.min.js">

然后参照官网

    private createQR(): void {
        var div: any= Browser.document.createElement("div");
        this.qrcode = new Browser.window.QRCode(div, {
            width: 100,
            height: 100
        });
        var url: String = "http://layabox.com/";
        this.qrcode.makeCode(url);

        this.qrcodeSp = new Sprite();
        this.view.addChild(this.qrcodeSp);
    }

    private clickFunc(): void {
        //  ,        ,            。
        var url: string = this.qrcode._oDrawing._elImage.src;
        this.qrcodeSp.loadImage(url, 0, 0, 100, 100);
    }

ここで作成したdivはパラメータを構築するためだけで,実際に追加したspriteはその内部のデータを用いた.ここでconsoleで印刷されたurl変数は、data:image/png;base64,......です.もちろん、spriteを使わずにimageで直接loadしても効果は同じです
this.qrImg = new Laya.Image();
this.qrImg.loadImage(url);

注意:このとき生成されたQRコードは、qrcodeがimgラベルではなくcanvasラベルを生成しているため、微信やブラウザで長安は何の反応もありません.ポップアップ認識のオプションを長押しするには、imgラベルを使うしかありません.この開発者は自分で拡張することができる.
公式サイトによる自己拡張は、divタグを簡単に直接追加することができます.
    private createQR(): void {
        var div: any = document.createElement("div");
        var e = Laya.Browser.container;
        // video     
        document.body.insertBefore(div, e);
        this.qrcode = new Browser.window.QRCode(div, {
            width: 100,
            height: 100
        });

もちろん、隠さないようにパラメータを処理します.
        //layaCanvas    
        Config.isAlpha = true;
        Laya.init(640, 1134, Laya.WebGL);
        Laya.stage.screenMode = Stage.SCREEN_HORIZONTAL;
        Laya.stage.alignH = Stage.ALIGN_CENTER;
        Laya.stage.alignV = Stage.ALIGN_MIDDLE;
        Laya.stage.scaleMode = Stage.SCALE_SHOWALL;
        Laya.stage.bgColor = "none";

それからレイアウトをもう少し処理すればいいです.
end