Barcode
- Ray Pearce (Unlicensed)
Owned by Ray Pearce (Unlicensed)
There are several ways to incorporate barcode / QR codes into the BMP via Blink's native app shells.
This can be done by calling the cordova plugin (barcodereader)
BlinkForm Example Expand source
/* * Custom code for reading Barcodes into a form field (native apps only). * To be added as manual calculation code for Calculation fields. * * NB: Javascript line comments should *NOT* be used in custom code added to forms. */ function() { var barcodereader = window.cordova.require( 'cordova/plugin/BGBarcodeReader'), bfo = this; /* * Function to be called after successfully reading a barcode. */ var onSuccess = function(message) { bfo.setFieldValue("BarcodeValue", message); /* Please replace 'BarcodeValue' with the name of the target field in the form. */ bfo.setFieldValue("readBarcode", ""); /* Please replace 'readBarCode' with the name of the Calculation field where the custom code will be inserted. */ console.log(message); }; /* * Function to be called after an error. */ var onError = function(message) { console.log(message); navigator.notification.alert(message); }; barcodereader.getBarcode(onSuccess, onError, []); return 'Scanning...'; }
Interaction Example Expand source
$html = ' <script> function formatAMPM(date) { var elem = document.getElementById("para1"); var hours = date.getHours(); var minutes = date.getMinutes(); var ampm = hours >= 12 ? \'pm\' : \'am\'; hours = hours % 12; hours = hours ? hours : 12; // the hour \'0\' should be \'12\' minutes = minutes < 10 ? \'0\'+minutes : minutes; var strTime = hours + \':\' + minutes + \'\' + ampm; return strTime; } var thisTimeIn = formatAMPM(new Date()); //console.log(thisTimeIn); //TESTING /* $("#testPushLink").click(function() { var message = "123456"; var thisTimeStamp = new Date().getTime(); $.post("//d.blinkm.co/_api/interaction/run/blinkscan/sendPush?t=" + thisTimeStamp, { barcode : message }, function(data) { $("div#scanningResults").html(data); console.log(data); //data is the reply form the interaction }); }); */ //END OF TESTING $("#ScanBarCode").click(function() { var barcodereader = window.cordova.require( "cordova/plugin/BGBarcodeReader"), bfo = this; /* * Function to be called after successfully reading a barcode. */ var onSuccess = function(message) { //navigator.notification.alert(message); if (message !== null && message !== "") { //console.log(message); //$("div#scanningResults").html("<h3 style=\"margin-left:0px;\" >Sending Push notification in 5 seconds</h3>Close your app now to view notification<br /><br />"); $("div#scanningResults").html("<h3 style=\"margin-left:0px;\" >Authenticating...</h3><br /><br />"); //Passing timestamp as URL param to get around ajax caching var thisTimeStamp = new Date().getTime(); $.post("//d.blinkm.co/_api/interaction/run/blinkscan/sendPush?t=" + thisTimeStamp, { barcode : message }, function(data) { //$("div#scanningResults").html(data); $("div#scanningResults").html("<h3>Login Complete</h3><span class=\"subHeading\">Employee ID:</span> " + message + "<br /><br /><span class=\"subHeading\">Name:</span> David Hasselhoff<br /><span class=\"subHeading\">Position:</span> Lifeguard<br /><span class=\"subHeading\">Tower:</span> Centre Beach<br /><span class=\"subHeading\">Time In:</span> " + thisTimeIn + "<br /><br /><br />You have successfully signed in, and your manager has been notified.<br /><br />"); console.log(data); //data is the reply form the interaction }); } //end of message check }; /* * Function to be called after an error. */ var onError = function(message) { console.log(message); navigator.notification.alert(message); }; barcodereader.getBarcode(onSuccess, onError, []); //return "Scanning..."; }); </script>'; $html .= '<div style="text-align:right; display:block; height:140px;"><input type="button" class="scanButton" style="float:right; display:inline-block;" value="" id="ScanBarCode"> </div> <br /> <h2 id="testPushLink">Lifeguard Timesheet:</h2> <div id="scanningResults" class="scanResultsDisplay">Please clock-in by scanning the QR Code on your tower</div> <br /><br /> '; return $html;