Android PhoneGap条码扫描问题

Android PhoneGap条码扫描问题,android,cordova,phonegap-plugins,barcode,Android,Cordova,Phonegap Plugins,Barcode,我想从我的android手机上扫描条形码,我正在使用PhoneGap,我的问题是我想在点击按钮时扫描条形码,下面的代码非常适合我,但当我使用这个按钮时,点击它想要工作 <body> <div class="app"> <h1>DevExpress DevExtreme JS HTML</h1> <div id="deviceready" class="blink"> <

我想从我的android手机上扫描条形码,我正在使用PhoneGap,我的问题是我想在点击按钮时扫描条形码,下面的代码非常适合我,但当我使用这个按钮时,点击它想要工作

<body>
    <div class="app">
        <h1>DevExpress DevExtreme JS HTML</h1>
        <div id="deviceready" class="blink">
            <p class="event listening">Connecting to Device</p>
            <p class="event received">Device is Ready</p>
        </div>
    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="barcodescanner.js"></script>
    <script type="text/javascript">
        var app = {
            initialize: function () {
                this.bindEvents();
            },
            bindEvents: function () {
                document.addEventListener('deviceready', this.onDeviceReady, false);
            },
            onDeviceReady: function () {
                app.receivedEvent('deviceready');

   var scanner = cordova.require("cordova/plugin/BarcodeScanner");
        scanner.scan(
      function (result) {
          alert("We got a barcode\n" +
                "Result: " + result.text + "\n" +
                "Format: " + result.format + "\n" +
                "Cancelled: " + result.cancelled);
      }, 
      function (error) {
          alert("Scanning failed: " + error);
      }
   );                
            },
            receivedEvent: function (id) {
                var parentElement = document.getElementById(id);
                var listeningElement = parentElement.querySelector('.listening');
                var receivedElement = parentElement.querySelector('.received');
                listeningElement.setAttribute('style', 'display:none;');
                receivedElement.setAttribute('style', 'display:block;');
                console.log('Received Event: ' + id);
            }
        };
    </script>
    <script type="text/javascript">
        app.initialize();
    </script>
</body>

DevExpress-DevExtreme JS HTML
连接到设备

设备已准备就绪

变量应用={ 初始化:函数(){ 这是bindEvents(); }, bindEvents:函数(){ 文件.addEventListener('devicerady',this.ondevicerady,false); }, onDeviceReady:函数(){ app.receivedEvent(“DeviceRady”); var scanner=cordova.require(“cordova/plugin/BarcodeScanner”); 扫描器( 功能(结果){ 警报(“我们得到了一个条形码\n”+ 结果:“+Result.text+”\n+ 格式:“+result.Format+”\n+ “已取消:“+结果.已取消”); }, 函数(错误){ 警报(“扫描失败:+错误”); } ); }, receivedEvent:函数(id){ var parentElement=document.getElementById(id); var listeningElement=parentElement.querySelector('.listening'); var receivedElement=parentElement.querySelector('.received'); setAttribute('style','display:none;'); setAttribute('style','display:block;'); console.log('接收到的事件:'+id); } }; app.initialize();
但是这个代码不起作用

<script type="text/javascript">
            function scanCode(){
                 var scanner = cordova.require("cordova/plugin/BarcodeScanner");

            scanner.scan(
                    function(result){
                        document.getElementById("data").value= result.text;
                    }, 
                    function(error){
                        alert("Scan failed: " + error);
                    }
                );
            }


        </script>
    </head>

    <body>
        <h3>Barcode/QR Code Scanner And Encoder</h3>

        <input type="button" value="Scan Code" onclick="scanCode();"/><br/><br/>

        Data : <br/>
        <input type="text" name="data" id="data" /><br/><br/>

    </body>

函数scanCode(){
var scanner=cordova.require(“cordova/plugin/BarcodeScanner”);
扫描器(
功能(结果){
document.getElementById(“数据”).value=result.text;
}, 
函数(错误){
警报(“扫描失败:+错误”);
}
);
}
条形码/二维码扫描仪和编码器


数据:



请帮助

扫描器
创建一个全局范围的变量,然后在
文档就绪
中保留将该变量分配给
cordova.require
,然后在按钮事件调用中调用
扫描器.scan

例如:

<body>
<div class="app">
    <h3>Barcode/QR Code Scanner And Encoder</h3>

    <input type="button" value="Scan Code" onclick="scanCode();"/><br/><br/>

    Data : <br/>
    <input type="text" name="data" id="data" /><br/><br/>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="barcodescanner.js"></script>
<script type="text/javascript">
    var scanner = null;
    var app = {
        initialize: function () {
            this.bindEvents();
        },
        bindEvents: function () {
            document.addEventListener('deviceready', this.onDeviceReady, false);
        },
        onDeviceReady: function () {
            app.receivedEvent('deviceready');

            scanner = cordova.require("cordova/plugin/BarcodeScanner");
            cordova.require("com.phonegap.plugins.barcodescanner.BarcodeScanner");
        },
        receivedEvent: function (id) {
            var parentElement = document.getElementById(id);
            var listeningElement = parentElement.querySelector('.listening');
            var receivedElement = parentElement.querySelector('.received');
            listeningElement.setAttribute('style', 'display:none;');
            receivedElement.setAttribute('style', 'display:block;');
            console.log('Received Event: ' + id);
        }
    };

    function scanCode(){
        scanner.scan(
                function(result){
                    document.getElementById("data").value= result.text;
                },
                function(error){
                    alert("Scan failed: " + error);
                }
        );
    }
</script>
<script type="text/javascript">
    app.initialize();
</script>
</body>

条形码/二维码扫描仪和编码器


数据:


var scanner=null; 变量应用={ 初始化:函数(){ 这是bindEvents(); }, bindEvents:函数(){ 文件.addEventListener('devicerady',this.ondevicerady,false); }, onDeviceReady:函数(){ app.receivedEvent(“DeviceRady”); scanner=cordova.require(“cordova/plugin/BarcodeScanner”); require(“com.phonegap.plugins.barcodescanner.barcodescanner”); }, receivedEvent:函数(id){ var parentElement=document.getElementById(id); var listeningElement=parentElement.querySelector('.listening'); var receivedElement=parentElement.querySelector('.received'); setAttribute('style','display:none;'); setAttribute('style','display:block;'); console.log('接收到的事件:'+id); } }; 函数scanCode(){ 扫描器( 功能(结果){ document.getElementById(“数据”).value=result.text; }, 函数(错误){ 警报(“扫描失败:+错误”); } ); } app.initialize();
在使用按钮之前,您是否正在等待设备就绪?工作代码还有“cordova.require”(“com.phonegap.plugins.barcodescanner.barcodescanner”),但是另一个代码块没有。是代码中的其他地方吗?谢谢你帮我解决了,你忘了添加一些标签连接到设备上了设备准备好了