javascript - 如何在cordova插件barcodeScanner中将barcodeScanner结果保存到localStorage

标签 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,但结果未显示在应用程序中。有人可以帮我这样做吗? 提前致谢!

最佳答案

LocalStorage 实际上只是一个行为与其他对象类似的对象。选择属性名称并使用 getter 和 setter,例如:

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

localStorage.getItem('item1');

或者简单地说:

localStorage.item1 = '8383838838';

请注意,如果您想在其中存储对象,则可以,但必须先将其字符串化。

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

关于javascript - 如何在cordova插件barcodeScanner中将barcodeScanner结果保存到localStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858414/

相关文章:

javascript - 在 javascript 中订购键/值对集合的最佳实践?

ios - iOS 中的 Ionic Tabs 在选项卡底部显示部分图标

javascript - Phonegap 警报对话框在消息顶部显示 index.html

javascript - 未配置 Meteor 登录服务

javascript - GUnload() 单个谷歌地图

javascript - 查找所有 URL 并将其列为页面底部的可点击链接

javascript - 使用条形码扫描仪将焦点从一个输入更改为下一个输入

android - 条形码扫描器 (Android) 中的奇怪行为

Android - 如何禁用 ZXing 库中的二维码扫描并仅允许条形码扫描

javascript - Highchart点击旋转-90