From fc10c9f405813067be35681be2c8150efcb01baa Mon Sep 17 00:00:00 2001 From: Carlos Morales Date: Tue, 7 Jul 2020 22:51:31 -0500 Subject: [PATCH 1/2] Handle if request comes from same hostname. If not, it may be an intent. This may solve the "External links constantly opening #15" issue --- .../at/xtools/pwawrapper/webview/WebViewHelper.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/src/main/java/at/xtools/pwawrapper/webview/WebViewHelper.java b/app/src/main/java/at/xtools/pwawrapper/webview/WebViewHelper.java index f19f49c..6f881dc 100644 --- a/app/src/main/java/at/xtools/pwawrapper/webview/WebViewHelper.java +++ b/app/src/main/java/at/xtools/pwawrapper/webview/WebViewHelper.java @@ -166,6 +166,19 @@ public void onReceivedError(WebView view, WebResourceRequest request, WebResourc handleLoadError(error.getErrorCode()); } } + } + //Handle if request comes from same hostname. If not, it may be an intent + @Override + public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { + + if((String.valueOf(request.getUrl())).contains(Constants.WEBAPP_HOST)) { + view.loadUrl(String.valueOf(request.getUrl())); + } else { + Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl()); + view.getContext().startActivity(intent); + } + + return true; } }); } From 72f5e62d9ffbb595f2dd4159f144e566807ade29 Mon Sep 17 00:00:00 2001 From: Carlos Morales Date: Tue, 7 Jul 2020 23:37:26 -0500 Subject: [PATCH 2/2] Need to change minSdkVersion to 21 to fix webview infinite loop Intents "request.getUrl()" Needs sdk 21 or greater. So my last fix needs this change too. --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index f3a7109..d457c97 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ android { compileSdkVersion 28 defaultConfig { applicationId "at.xtools.pwawrapper" - minSdkVersion 20 + minSdkVersion 21 targetSdkVersion 28 versionCode 1 versionName "1.0"