如何将barcodeScanner结果保存到cordova插件中的localStorage barcodeScanner

时间:2015-06-16 03:46:19

标签: javascript cordova barcode-scanner

我从SAP获得了一个适用于barcodeScanner wildabeast cordova插件的教程。 从教程开始,它有一个index.html本身用于调用函数。然后我将它植入我的应用程序的index.html,代码是这样的:

<div data-role="content" style="text-align: center">
    <h3 style="color: blue">Selamat datang.</h3>
    <button onclick="scan()">Scan QR Code</button> <!-- call function scan() from barcodescanner.js -->
    <a href="#manual" class="ui-btn">Masukkan Kode</a> 
      <div id="scan_results"></div> <!-- unknown -->
</div> <!-- /contain -->

和barcodescanner.js是这样的:

document.addEventListener("deviceready", init, false);
    function init() {
    }

    function scan() {
        log("scanning");
        cordova.plugins.barcodeScanner.scan(scanSuccessCallback, scanErrorCallback);
    }

    function scanSuccessCallback(result) {
        log(JSON.stringify(result));
        /*
        alert("We got a barcode\n" +
        "Result: " + result.text + "\n" +
        "Format: " + result.format + "\n" +
        "Cancelled: " + result.cancelled);
         */
    }

    function scanErrorCallback(error) {
        alert("Scanning failed: " + JSON.stringify(error));
    }

    function encode() {
        log("encoding");
        if (device.platform == "Android") {  //Not supported on iOS
            var stringToEncode = "http://www.sap.com";
            cordova.plugins.barcodeScanner.encode(cordova.plugins.barcodeScanner.Encode.TEXT_TYPE, stringToEncode, encodeSuccessCallback, encodeErrorCallback);
        }
        else {
            log("Encoding is not supported on iOS.  See https://github.com/wildabeast/BarcodeScanner/issues/106");  
        }
    }

    function encodeSuccessCallback(result) {
        log(JSON.stringify(result));
    }

    function encodeErrorCallback(error) {
        alert("Encoding failed: " + JSON.stringify(error));
    }

    function log(line) {
        var results = document.getElementById("scan_results");
        results.innerHTML+= "<br>" + line;
    }

我想将扫描结果保存到LocalStorage,结果不会显示在应用程序中。有人可以帮助我这样做吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

LocalStorage实际上只是一个与其他对象一样的对象。选择一个属性名称,然后使用getters和setter,如:

localStorage.setItem('item1', '8383838838');

localStorage.getItem('item1');

或者简单地说:

localStorage.item1 = '8383838838';

请注意,如果您想在其中存储对象,则必须首先对其进行字符串化。

这不应该是现代浏览器的问题,但在使用此API之前,请务必先检查LocalStorage是否存在。