Skip to content Skip to sidebar Skip to footer

Opening Two Instances Of Inappbrowser (_system And _blank) Prevents Events From Triggering

We’re currently developing an app with cordova and the InAppBrowser plugin. We're trying to spawn two different IAB instances at the same time. One with the _system browser and a

Solution 1:

It seems that you need to initialize the IAB each time you do a new window.open() if you don't do that the event listeners don't work.

If I use that code it works like a charm.

window.openIAB = function(url, target, options) {

    var self = this;
    var ref = window.open(url, target, options);

    var handleChildEvents = function(ev) {

        if (ref != undefined) {

            // Closing the iab window if (ev.url.match('#close')) {
                ref.close();
                ref = undefined;
            }

            // Opening card url with system browserif (ev.url.match('#openccard')) {
                var customerId = ev.url.split('#openccard-')[1];
                self.ref2 = self.openIAB(
                    'https://www.test.com?customerID=' + customerId,
                    '_system', 
                    'location=yes'
                );
            }

        } else {
            console.log('InAppBrowser has no reference');
        }

    };

    ref.addEventListener('loadstart', handleChildEvents);
    ref.addEventListener('loadstop', handleChildEvents);

    ref.addEventListener('loaderror', function(ev) {
        console.log('error while loading page');
        ref.close();
        ref = undefined;
    });

    ref.addEventListener('exit', function(ev) {
        dialog.close();
    });

    return ref;
};

Post a Comment for "Opening Two Instances Of Inappbrowser (_system And _blank) Prevents Events From Triggering"