【问题标题】:How to change the look of Phonegaps barcode scanner plugin如何更改 Phonegaps 条码扫描器插件的外观
【发布时间】:2015-10-19 07:17:48
【问题描述】:

我已将此插件安装到我的 PhoneGap 项目中:

https://github.com/phonegap/phonegap-plugin-barcodescanner

它就像一个魅力。但是,我希望能够在打开扫描仪以浏览应用程序时打开一些按钮。因此,当应用程序打开时,扫描仪会立即打开,这样他们就可以立即扫描条形码,然后在可以进入应用程序的某个地方有一个按钮。

我曾尝试查看插件 javascript 等,但它只有一个 javascript 文件,如下所示:

cordova.define("phonegap-plugin-barcodescanner.BarcodeScanner", function(require, exports, module) { /**
 * cordova is available under *either* the terms of the modified BSD license *or* the
 * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
 *
 * Copyright (c) Matt Kane 2010
 * Copyright (c) 2011, IBM Corporation
 */


var exec = require("cordova/exec");

/**
 * Constructor.
 *
 * @returns {BarcodeScanner}
 */
function BarcodeScanner() {

    /**
     * Encoding constants.
     *
     * @type Object
     */
    this.Encode = {
        TEXT_TYPE: "TEXT_TYPE",
        EMAIL_TYPE: "EMAIL_TYPE",
        PHONE_TYPE: "PHONE_TYPE",
        SMS_TYPE: "SMS_TYPE"
        //  CONTACT_TYPE: "CONTACT_TYPE",  // TODO:  not implemented, requires passing a Bundle class from Javascript to Java
        //  LOCATION_TYPE: "LOCATION_TYPE" // TODO:  not implemented, requires passing a Bundle class from Javascript to Java
    };

    /**
     * Barcode format constants, defined in ZXing library.
     *
     * @type Object
     */
    this.format = {
        "all_1D": 61918,
        "aztec": 1,
        "codabar": 2,
        "code_128": 16,
        "code_39": 4,
        "code_93": 8,
        "data_MATRIX": 32,
        "ean_13": 128,
        "ean_8": 64,
        "itf": 256,
        "maxicode": 512,
        "msi": 131072,
        "pdf_417": 1024,
        "plessey": 262144,
        "qr_CODE": 2048,
        "rss_14": 4096,
        "rss_EXPANDED": 8192,
        "upc_A": 16384,
        "upc_E": 32768,
        "upc_EAN_EXTENSION": 65536
    };
};

/**
 * Read code from scanner.
 *
 * @param {Function} successCallback This function will recieve a result object: {
 *        text : '12345-mock',    // The code that was scanned.
 *        format : 'FORMAT_NAME', // Code format.
 *        cancelled : true/false, // Was canceled.
 *    }
 * @param {Function} errorCallback
 */
BarcodeScanner.prototype.scan = function (successCallback, errorCallback, config) {

    if(config instanceof Array) {
        // do nothing
    } else {
        if(typeof(config) === 'object') {
            config = [ config ];
        } else {
            config = [];
        }
    }

    if (errorCallback == null) {
        errorCallback = function () {
        };
    }

    if (typeof errorCallback != "function") {
        console.log("BarcodeScanner.scan failure: failure parameter not a function");
        return;
    }

    if (typeof successCallback != "function") {
        console.log("BarcodeScanner.scan failure: success callback parameter must be a function");
        return;
    }

    exec(successCallback, errorCallback, 'BarcodeScanner', 'scan', config);
};

//-------------------------------------------------------------------
BarcodeScanner.prototype.encode = function (type, data, successCallback, errorCallback, options) {
    if (errorCallback == null) {
        errorCallback = function () {
        };
    }

    if (typeof errorCallback != "function") {
        console.log("BarcodeScanner.encode failure: failure parameter not a function");
        return;
    }

    if (typeof successCallback != "function") {
        console.log("BarcodeScanner.encode failure: success callback parameter must be a function");
        return;
    }

    exec(successCallback, errorCallback, 'BarcodeScanner', 'encode', [
        {"type": type, "data": data, "options": options}
    ]);
};

var barcodeScanner = new BarcodeScanner();
module.exports = barcodeScanner;

});

【问题讨论】:

    标签: javascript java android cordova


    【解决方案1】:

    Android 的 Phonegap 条码扫描器插件只是在 Phonegap 和 ZXing 项目之间提供了一个接口。它是用于 Android 的 ZXing 客户端,它定义了在“扫描模式”下显示的用户界面,这是本机(在 Java 中)完成的,而不是 Javascript。

    要更改它,您需要编辑插件使用的library project 并在此处更改本机 UI 代码。

    【讨论】:

    • 太棒了。也感谢您的链接,这会给我一个很好的开始:) 正是我所需要的,谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多