Jump to content

Return to PWA after calling a barcodescanner-App ???


erich.wanker

Recommended Posts

Hello,

 

if my unigui app is running in  Android Chrome Browser - it calls the barcodescanner-app - and the barcodescanner-app goes back to the chrome-browser...EVERYTHING works fine !

if the same unigui app is installed as PWA -  the barcodescanner-app starts the Chromebrowser with the url of my app - and does not go back to the PWA

 

I USE :

i found following solution here in the forum to scann a barcode:

1. install https://play.google.com/store/apps/details?id=com.geekslab.qrbarcodescanner.pro&hl=en

2. create a unigui app -> create a button -> Clientevent -> extevent -> function click(sender, e, eOpts) {  getScan();  }

and include following code in Mainfor,script:

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');
    }
       function processBarcode(b){
		ajaxRequest(MainForm.form,"BARCODE",["value="+b]);
            }

 

and to display the result:
 

procedure TMainForm.UniFormAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings);

  if EventName = 'BARCODE' then
    mainform.nachricht_click('EAN oder QR Code:' + Params.Values['value']);

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...