From fe5a15d566dda4c3a8626cbb4a2aa9f915e5a0e9 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Sun, 3 Apr 2022 22:17:18 -0600 Subject: [PATCH] Improve browser/Cordova compatibility --- www/assets/js/platform.js | 57 +++++++++++++++++++++++---------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/www/assets/js/platform.js b/www/assets/js/platform.js index 3e4502f..fe28b6d 100644 --- a/www/assets/js/platform.js +++ b/www/assets/js/platform.js @@ -176,37 +176,48 @@ function initCordova() { }, function (err) {}); window.htmlopen = window.open; - window.open = cordova.InAppBrowser.open; + if (typeof device != "undefined" && device.platform != "browser") { + window.open = cordova.InAppBrowser.open; - openBrowser = function (url, options, onclose, onmessage) { - if (typeof options == "undefined") { - options = "location=yes,fullscreen=no,zoom=no"; - } - cordovaInAppBrowserRef = cordova.InAppBrowser.open(url, "_blank", options); - if (typeof onclose == "function") { - try { - cordovaInAppBrowserRef.removeEventListener("exit"); - } catch (ex) { + openBrowser = function (url, options, onclose, onmessage) { + if (typeof options == "undefined") { + options = "location=yes,fullscreen=no,zoom=no"; + } + cordovaInAppBrowserRef = cordova.InAppBrowser.open(url, "_blank", options); + if (typeof onclose == "function") { + try { + cordovaInAppBrowserRef.removeEventListener("exit"); + } catch (ex) { + } + cordovaInAppBrowserRef.addEventListener("exit", onclose); + } + if (typeof onmessage == "function") { + try { + cordovaInAppBrowserRef.removeEventListener("message"); + } catch (ex) { + } + cordovaInAppBrowserRef.addEventListener("message", onmessage); } - cordovaInAppBrowserRef.addEventListener("exit", onclose); } - if (typeof onmessage == "function") { - try { - cordovaInAppBrowserRef.removeEventListener("message"); - } catch (ex) { + + closeBrowser = function () { + if (typeof cordovaInAppBrowserRef != null) { + cordovaInAppBrowserRef.close(); } - cordovaInAppBrowserRef.addEventListener("message", onmessage); } - } - closeBrowser = function () { - if (typeof cordovaInAppBrowserRef != null) { - cordovaInAppBrowserRef.close(); + openExternalBrowser = function (url) { + window.open(url, '_system', ''); + } + } else { + // Running in browser, use a "real" window instead of an IAB one + openBrowser = function (url) { + window.open(url); } - } - openExternalBrowser = function (url) { - window.open(url, '_system', ''); + openExternalBrowser = function (url) { + window.open(url); + } } IonicDeeplink.onDeepLink(function (link) {