Intégration du scanner de code à barres Android avec la page web

j'ai fait des recherches toute la matinée sur l'intégration d'une application de scanner de code-barre android dans une page web, mais je n'ai pas trouvé exactement ce que j'ai besoin de savoir. Je veux avoir une page web que l'utilisateur peut remplir des champs de texte en utilisant un scanner de code à barres android. Ainsi, l'utilisateur serait sur une page web et serait soit cliquer à l'intérieur du champ de texte ou cliquez sur un bouton à côté du champ de texte qui démarrerait le scanner de code à barres android. Ils numériseraient alors le code à barres et le champ de texte serait rempli dans.

j'ai trouvé des solutions sur la façon de le faire et puis passez à une autre page, mais il est important que l'utilisateur reste sur la même page. J'ai vu le projet zxing et j'ai pensé qu'il pourrait être utilisé, mais je ne suis pas sûr qu'il permette à la page de rester la même.

je suis assez sûr que c'est possible et je me demande si quelqu'un pourrait me donner un aperçu de haut niveau sur la façon dont ils le feraient. Je pensais que ça pourrait être fait avec une demande ajax qui est soumis sur un clic de bouton. La requête ajax serait envoyée à mon serveur, le serveur enverrait quelque chose à l'appareil android qui démarrerait le scanner et retournerait les données qui à leur tour est envoyé dans la réponse ajax. Est-il possible de couper le serveur et avoir le navigateur android le démarrage du scanner de code à barres? Je vous remercie de votre temps et j'apprécie toute discussion à ce sujet.

19
demandé sur Geren White 2012-11-12 20:07:55

3 réponses

en utilisant une interface javascript et loadurl (javascript...) vous pouvez communiquer avec votre page web à partir d'Android

public void loadScript(String script){      
    webview.loadUrl("javascript:(function() { " + script + "})()");             
}

private class JavaScriptInterface {     
    public void startQRScan() {
        ...
    }
}

Il y a beaucoup d'exemples sur google.

2
répondu ePeace 2012-11-12 16:22:50

ZXing (zebra crossing) fournit la capacité d'initier le scanner de code à barres via une page Web par un événement de clic de bouton, étiquette d'ancrage, ou d'autres actions qui pourraient appeler une URL sur un appareil mobile.

lorsque l'application scanner de code à barres est installée sur un appareil android, un appel D'URL à:

zxing://scan/?ret=http://foo.com/products/{CODE}/description&SCAN_FORMATS=UPC_A,EAN_13

va afficher le lecteur de code à barres de l'appareil, l'utilisateur scanne le code, et le code est retourné via le paramètre URL de rappel fourni dans le zxing URL.

Vous pouvez voir un exemple (fonctionne sur android) ici: http://zxing.appspot.com/scan

20
répondu Michael Jasper 2014-08-10 15:12:52

Vous pouvez essayer ce pour Android:

Vous pouvez utiliser la bibliothèque Zxing pour le balayage de code à barres pour les pages web

 <!DOCTYPE html>
    <script type="text/javascript">
    //This entire block of script should be in a separate file, and included in each doc in which you want scanner capabilities
        function zxinglistener(e){
            localStorage["zxingbarcode"] = "";
            if(e.url.split("\#")[0] == window.location.href){
                window.focus();
                processBarcode(decodeURIComponent(e.newValue));
            }
            window.removeEventListener("storage", zxinglistener, false);
        }
        if(window.location.hash != ""){
            localStorage["zxingbarcode"] = window.location.hash.substr(1);
            self.close();
            window.location.href="about:blank";//In case self.close is disabled
        }else{
            window.addEventListener("hashchange", function(e){
                window.removeEventListener("storage", zxinglistener, false);
                var hash = window.location.hash.substr(1);
                if (hash != "") {
                    window.location.hash = "";
                    processBarcode(decodeURIComponent(hash));
                }
            }, false);
        }
        function getScan(){
            var href = window.location.href.split("\#")[0];
            window.addEventListener("storage", zxinglistener, false);
            zxingWindow = window.open("zxing://scan/?ret=" + encodeURIComponent(href + "#{CODE}"),'_self');
        }

    </script>

    <html>
        <head>
            <script type="text/javascript">
                function processBarcode(b){
                    var d = document.createElement("div");
                    d.innerHTML = b;
                    document.body.appendChild(d);
                }
            </script>
        </head>
        <body>
            <button onclick="getScan()">get Scan</button>
        </body>
    </html>

référence: lien

5
répondu kishan Radadiya 2016-06-15 11:55:23