diff --git a/src/android/InAppBrowser.java b/src/android/InAppBrowser.java index d141c0664..bf29bb6d9 100644 --- a/src/android/InAppBrowser.java +++ b/src/android/InAppBrowser.java @@ -269,12 +269,6 @@ else if (action.equals("loadAfterBeforeload")) { @SuppressLint("NewApi") @Override public void run() { - if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.O) { - currentClient.waitForBeforeload = false; - inAppWebView.setWebViewClient(currentClient); - } else { - ((InAppBrowserClient)inAppWebView.getWebViewClient()).waitForBeforeload = false; - } inAppWebView.loadUrl(url); } }); @@ -718,6 +712,8 @@ public String showWebPage(final String url, HashMap features) { } if (features.get(BEFORELOAD) != null) { beforeload = features.get(BEFORELOAD); + } else { + beforeload = ""; } String fullscreenSet = features.get(FULLSCREEN); if (fullscreenSet != null) { @@ -1169,7 +1165,6 @@ public class InAppBrowserClient extends WebViewClient { EditText edittext; CordovaWebView webView; String beforeload; - boolean waitForBeforeload; /** * Constructor. @@ -1181,7 +1176,6 @@ public InAppBrowserClient(CordovaWebView webView, EditText mEditText, String bef this.webView = webView; this.edittext = mEditText; this.beforeload = beforeload; - this.waitForBeforeload = beforeload != null; } /** @@ -1242,7 +1236,7 @@ public boolean shouldOverrideUrlLoading(String url, String method) { } // On first URL change, initiate JS callback. Only after the beforeload event, continue. - if (useBeforeload && this.waitForBeforeload) { + if (useBeforeload) { if(sendBeforeLoad(url, method)) { return true; } @@ -1337,9 +1331,6 @@ else if (!url.startsWith("http:") && !url.startsWith("https:") && url.matches("^ } } - if (useBeforeload) { - this.waitForBeforeload = true; - } return override; } diff --git a/www/inappbrowser.js b/www/inappbrowser.js index bb881378c..e499a3baa 100644 --- a/www/inappbrowser.js +++ b/www/inappbrowser.js @@ -41,7 +41,7 @@ _eventHandler: function (event) { if (event && (event.type in this.channels)) { if (event.type === 'beforeload') { - this.channels[event.type].fire(event, this._loadAfterBeforeload); + this.channels[event.type].fire(event, this._loadAfterBeforeload.bind(this)); } else { this.channels[event.type].fire(event); }