diff --git a/license-credits.md b/license-credits.md index ad2e6ea..727d1ac 100644 --- a/license-credits.md +++ b/license-credits.md @@ -120,7 +120,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The following software may be included in this product: leaflet. A copy of the source code may be downloaded from git://github.com/Leaflet/Leaflet.git. This software contains the following license and notice below: -Copyright (c) 2010-2018, Vladimir Agafonkin +Copyright (c) 2010-2019, Vladimir Agafonkin Copyright (c) 2010-2011, CloudMade All rights reserved. @@ -1907,7 +1907,7 @@ The Apache Software Foundation (http://www.apache.org/). ----- -The following software may be included in this product: cordova-plugin-inappbrowser, cordova-plugin-whitelist. A copy of the source code may be downloaded from https://github.com/apache/cordova-plugin-inappbrowser (cordova-plugin-inappbrowser), https://github.com/apache/cordova-plugin-whitelist (cordova-plugin-whitelist). This software contains the following license and notice below: +The following software may be included in this product: cordova-plugin-device, cordova-plugin-inappbrowser, cordova-plugin-whitelist. A copy of the source code may be downloaded from https://github.com/apache/cordova-plugin-device (cordova-plugin-device), https://github.com/apache/cordova-plugin-inappbrowser (cordova-plugin-inappbrowser), https://github.com/apache/cordova-plugin-whitelist (cordova-plugin-whitelist). This software contains the following license and notice below: Apache License Version 2.0, January 2004 @@ -2962,7 +2962,7 @@ THE SOFTWARE. ----- -The following software may be included in this product: es-to-primitive, is-callable, is-date-object, is-symbol, string.prototype.trimleft, string.prototype.trimright. A copy of the source code may be downloaded from git://github.com/ljharb/es-to-primitive.git (es-to-primitive), git://github.com/ljharb/is-callable.git (is-callable), git://github.com/ljharb/is-date-object.git (is-date-object), git://github.com/ljharb/is-symbol.git (is-symbol), git://github.com/es-shims/String.prototype.trimLeft.git (string.prototype.trimleft), git://github.com/es-shims/String.prototype.trimRight.git (string.prototype.trimright). This software contains the following license and notice below: +The following software may be included in this product: es-to-primitive, is-callable, is-date-object, is-symbol, string.prototype.trimleft, string.prototype.trimright. A copy of the source code may be downloaded from git://github.com/ljharb/es-to-primitive.git (es-to-primitive), git://github.com/ljharb/is-callable.git (is-callable), git://github.com/ljharb/is-date-object.git (is-date-object), git://github.com/inspect-js/is-symbol.git (is-symbol), git://github.com/es-shims/String.prototype.trimLeft.git (string.prototype.trimleft), git://github.com/es-shims/String.prototype.trimRight.git (string.prototype.trimright). This software contains the following license and notice below: The MIT License (MIT) diff --git a/package.json b/package.json index 4e50390..d875c38 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,8 @@ "cordova-plugin-inappbrowser": {}, "cordova-plugin-powermanagement-netsyms": {}, "cordova-plugin-whitelist": {}, - "phonegap-plugin-barcodescanner": {} + "phonegap-plugin-barcodescanner": {}, + "cordova-plugin-device": {} }, "platforms": [ "android", @@ -28,6 +29,7 @@ "dependencies": { "cordova-android": "^8.1.0", "cordova-browser": "^6.0.0", + "cordova-plugin-device": "^2.0.3", "cordova-plugin-inappbrowser": "^3.1.0", "cordova-plugin-powermanagement-netsyms": "git+https://source.netsyms.com/Netsyms/cordova-plugin-powermanagement", "cordova-plugin-whitelist": "^1.3.4" diff --git a/scripts/remove_bloat.sh b/scripts/remove_bloat.sh index be73130..aefb98f 100755 --- a/scripts/remove_bloat.sh +++ b/scripts/remove_bloat.sh @@ -29,6 +29,7 @@ cd jsbarcode rm -rf .dockerignore .eslintignore .eslintrcautomation bower.json CONTRIBUTING.md docker-compose.yml Dockerfile example gulpfile.js jsbarcode.d.ts README.md src test .travis.yml rm -rf dist/barcodes rm -rf dist/JsBarcode.all.js +cd .. cd framework7 rm -rf components @@ -36,8 +37,8 @@ rm -rf lazy-components rm -rf less rm -rf modules rm -rf utils - cd .. + cd material-design-icons rm -rf action rm -rf alert diff --git a/www/assets/js/platform.js b/www/assets/js/platform.js index 826b8a5..b2902e3 100644 --- a/www/assets/js/platform.js +++ b/www/assets/js/platform.js @@ -64,14 +64,57 @@ var watchLocation = function (success, error) { } } +function setupHTML5BarcodeScanner() { + $("body").append(''); + + scanBarcode = function (success, error) { + $("#web-barcode-ui").removeClass("hidden"); + // Stolen from https://zxing-js.github.io/library/examples/multi-camera/ + const codeReader = new ZXing.BrowserMultiFormatReader(); + console.log('ZXing code reader initialized'); + codeReader.getVideoInputDevices() + .then((videoInputDevices) => { + if (videoInputDevices.length == 0) { + codeReader.reset(); + $("#web-barcode-ui").addClass("hidden"); + error("A camera is required to scan barcodes."); + return; + } + selectedDeviceId = videoInputDevices[0].deviceId; + + codeReader.decodeFromInputVideoDeviceContinuously(selectedDeviceId, 'barcode-viewer', (result, err) => { + if (result) { + console.log(result); + codeReader.reset(); + $("#web-barcode-ui").addClass("hidden"); + success(result.text); + return; + } + if (err && !(err instanceof ZXing.NotFoundException)) { + console.error(err); + codeReader.reset(); + $("#web-barcode-ui").addClass("hidden"); + error(err); + return; + } + }); + }) + .catch((err) => { + console.error(err); + }); + $("#web-barcode-ui").on("click", function () { + codeReader.reset(); + $("#web-barcode-ui").addClass("hidden"); + }); + }; +} + function initCordova() { platform_type = "cordova"; - // Handle back button to close things document.addEventListener("backbutton", function (event) { router.back({force: true, ignoreCache: true}); }, false); - document.addEventListener("deviceready", function () { if (localStorage.getItem("wakelock") == "true") { window.powerManagement.acquire(function () { @@ -87,7 +130,6 @@ function initCordova() { }); } }, false); - openBrowser = function (url) { cordova.InAppBrowser.open(url, '_blank', 'location=yes'); } @@ -96,34 +138,37 @@ function initCordova() { window.open(url, '_system', ''); } - scanBarcode = function (success, error) { - cordova.plugins.barcodeScanner.scan( - function (result) { - if (!result.cancelled) { - success(result.text); - } - }, - function (err) { - if (typeof error == "function") { - error(err); + if (typeof device != "undefined" && device.platform != "browser") { + scanBarcode = function (success, error) { + cordova.plugins.barcodeScanner.scan( + function (result) { + if (!result.cancelled) { + success(result.text); + } + }, + function (err) { + if (typeof error == "function") { + error(err); + } + }, + { + showTorchButton: true, + showFlipCameraButton: true, + prompt: "Scan barcode", + resultDisplayDuration: 0, + disableSuccessBeep: true, + formats: "QR_CODE,DATA_MATRIX,CODE_39,CODE_93,CODE_128,CODABAR,PDF_417,AZTEC,MAXICODE" } - }, - { - showTorchButton: true, - showFlipCameraButton : true, - prompt: "Scan barcode", - resultDisplayDuration: 0, - disableSuccessBeep: true, - formats: "QR_CODE,DATA_MATRIX,CODE_39,CODE_93,CODE_128,CODABAR,PDF_417,AZTEC,MAXICODE" - } - ); + ); + }; + } else { + setupHTML5BarcodeScanner(); } } function initNW() { platform_type = "nw"; platform_theme = "md"; - openBrowser = function (url) { nw.Window.open(url, { id: url @@ -156,57 +201,22 @@ function initNW() { require('nw.gui').Shell.openExternal(url); } - $("body").append(''); - - scanBarcode = function (success, error) { - $("#web-barcode-ui").removeClass("hidden"); - // Stolen from https://zxing-js.github.io/library/examples/multi-camera/ - const codeReader = new ZXing.BrowserMultiFormatReader(); - console.log('ZXing code reader initialized'); - codeReader.getVideoInputDevices() - .then((videoInputDevices) => { - if (videoInputDevices.length == 0) { - codeReader.reset(); - $("#web-barcode-ui").addClass("hidden"); - error("A camera is required to scan barcodes."); - return; - } - selectedDeviceId = videoInputDevices[0].deviceId; - codeReader.decodeFromInputVideoDeviceContinuously(selectedDeviceId, 'barcode-viewer', (result, err) => { - if (result) { - console.log(result); - codeReader.reset(); - $("#web-barcode-ui").addClass("hidden"); - success(result.text); - return; - } - if (err && !(err instanceof ZXing.NotFoundException)) { - console.error(err); - codeReader.reset(); - $("#web-barcode-ui").addClass("hidden"); - error(err); - return; - } - }); - }) - .catch((err) => { - console.error(err); - }); - $("#web-barcode-ui").on("click", function () { - codeReader.reset(); - $("#web-barcode-ui").addClass("hidden"); - }); - }; + setupHTML5BarcodeScanner(); } function initBrowser() { platform_type = "browser"; platform_theme = "md"; - openBrowser = function (url) { window.open(url); } + + openExternalBrowser = function (url) { + window.open(url); + } + + setupHTML5BarcodeScanner(); } function initPlatform() { diff --git a/www/pages/credits.html b/www/pages/credits.html index 043deec..8a3590d 100644 --- a/www/pages/credits.html +++ b/www/pages/credits.html @@ -225,7 +225,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The following software may be included in this product: leaflet. A copy of the source code may be downloaded from git://github.com/Leaflet/Leaflet.git. This software contains the following license and notice below: -Copyright (c) 2010-2018, Vladimir Agafonkin +Copyright (c) 2010-2019, Vladimir Agafonkin Copyright (c) 2010-2011, CloudMade All rights reserved. @@ -2012,7 +2012,7 @@ The Apache Software Foundation (http://www.apache.org/). ----- -The following software may be included in this product: cordova-plugin-inappbrowser, cordova-plugin-whitelist. A copy of the source code may be downloaded from https://github.com/apache/cordova-plugin-inappbrowser (cordova-plugin-inappbrowser), https://github.com/apache/cordova-plugin-whitelist (cordova-plugin-whitelist). This software contains the following license and notice below: +The following software may be included in this product: cordova-plugin-device, cordova-plugin-inappbrowser, cordova-plugin-whitelist. A copy of the source code may be downloaded from https://github.com/apache/cordova-plugin-device (cordova-plugin-device), https://github.com/apache/cordova-plugin-inappbrowser (cordova-plugin-inappbrowser), https://github.com/apache/cordova-plugin-whitelist (cordova-plugin-whitelist). This software contains the following license and notice below: Apache License Version 2.0, January 2004 @@ -3067,7 +3067,7 @@ THE SOFTWARE. ----- -The following software may be included in this product: es-to-primitive, is-callable, is-date-object, is-symbol, string.prototype.trimleft, string.prototype.trimright. A copy of the source code may be downloaded from git://github.com/ljharb/es-to-primitive.git (es-to-primitive), git://github.com/ljharb/is-callable.git (is-callable), git://github.com/ljharb/is-date-object.git (is-date-object), git://github.com/ljharb/is-symbol.git (is-symbol), git://github.com/es-shims/String.prototype.trimLeft.git (string.prototype.trimleft), git://github.com/es-shims/String.prototype.trimRight.git (string.prototype.trimright). This software contains the following license and notice below: +The following software may be included in this product: es-to-primitive, is-callable, is-date-object, is-symbol, string.prototype.trimleft, string.prototype.trimright. A copy of the source code may be downloaded from git://github.com/ljharb/es-to-primitive.git (es-to-primitive), git://github.com/ljharb/is-callable.git (is-callable), git://github.com/ljharb/is-date-object.git (is-date-object), git://github.com/inspect-js/is-symbol.git (is-symbol), git://github.com/es-shims/String.prototype.trimLeft.git (string.prototype.trimleft), git://github.com/es-shims/String.prototype.trimRight.git (string.prototype.trimright). This software contains the following license and notice below: The MIT License (MIT)