diff --git a/apks/420pokies.apk b/apks/420pokies.apk index a9ea32e..8a7646d 100644 Binary files a/apks/420pokies.apk and b/apks/420pokies.apk differ diff --git a/base/src/main/java/com/webclip/base/MainActivity.java b/base/src/main/java/com/webclip/base/MainActivity.java index a54dfbe..ae16e8a 100644 --- a/base/src/main/java/com/webclip/base/MainActivity.java +++ b/base/src/main/java/com/webclip/base/MainActivity.java @@ -860,6 +860,20 @@ public class MainActivity extends AppCompatActivity { boolean hasSignIn = false; + private boolean isMainPageUrl(String targetUrl) { + return !TextUtils.isEmpty(targetUrl) && !TextUtils.isEmpty(url) && targetUrl.startsWith(url); + } + + private void logWebViewUrl(String stage, String rawUrl) { + if (TextUtils.isEmpty(rawUrl)) { + LogUtils.i("WebViewURL[" + stage + "]: empty"); + return; + } + Uri uri = Uri.parse(rawUrl); + String host = uri.getHost() == null ? "" : uri.getHost(); + LogUtils.i("WebViewURL[" + stage + "]: " + rawUrl + " | host=" + host + " | scheme=" + uri.getScheme()); + } + // WebView webViews; WebViewClient webViewClient = new WebViewClient() { @@ -867,12 +881,14 @@ public class MainActivity extends AppCompatActivity { @Override public void onPageStarted(WebView webView, String s, Bitmap bitmap) { super.onPageStarted(webView, s, bitmap); + logWebViewUrl("onPageStarted", s); } @Override public void onPageFinished(WebView webView, String s) { super.onPageFinished(webView, s); + logWebViewUrl("onPageFinished", s); // LogUtils.i("URL是啥加载完成:" + webView.getUrl()); if (webView.getUrl().contains("hasSignIn")) { hasSignIn = true; @@ -903,12 +919,15 @@ public class MainActivity extends AppCompatActivity { @Override public WebResourceResponse shouldInterceptRequest(WebView webView, String s) { - + logWebViewUrl("shouldInterceptRequestLegacy", s); return super.shouldInterceptRequest(webView, s); } @Override public WebResourceResponse shouldInterceptRequest(WebView webView, WebResourceRequest webResourceRequest) { + if (webResourceRequest != null && webResourceRequest.getUrl() != null) { + logWebViewUrl("shouldInterceptRequest", webResourceRequest.getUrl().toString()); + } return super.shouldInterceptRequest(webView, webResourceRequest); } @@ -919,10 +938,9 @@ public class MainActivity extends AppCompatActivity { int errorCode = error.getErrorCode(); String errorMessage = error.getDescription().toString(); String currentUrl = request.getUrl().toString(); - if ((errorCode == -2 || errorCode == -6) && currentUrl.contains(url)) { + LogUtils.i("WebViewURL[onReceivedError]: url=" + currentUrl + " | code=" + errorCode + " | msg=" + errorMessage); + if (isMainPageUrl(currentUrl)) { onShowErrorView(errorMessage); - } else { - onShowNetView(); } } activityMain2Binding.progressbar.setVisibility(View.GONE); @@ -930,6 +948,7 @@ public class MainActivity extends AppCompatActivity { @Override public void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) { + LogUtils.i("WebViewURL[onReceivedSslError]: url=" + (webView == null ? "" : webView.getUrl()) + " | primaryError=" + sslError.getPrimaryError() + " | urlString=" + sslError.getUrl()); sslErrorHandler.proceed(); } @@ -937,10 +956,9 @@ public class MainActivity extends AppCompatActivity { public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - if ((errorCode == -2 || errorCode == -6) && failingUrl.contains(url)) { + LogUtils.i("WebViewURL[onReceivedErrorLegacy]: url=" + failingUrl + " | code=" + errorCode + " | msg=" + description); + if (isMainPageUrl(failingUrl)) { onShowErrorView(description); - } else { - onShowNetView(); } } activityMain2Binding.progressbar.setVisibility(View.GONE); @@ -950,6 +968,7 @@ public class MainActivity extends AppCompatActivity { @Override public boolean shouldOverrideUrlLoading(WebView webView, String url1) { + logWebViewUrl("shouldOverrideUrlLoading", url1); if (url1.equals(url + "index") || url1.equals(url + "/index")) { isAtGame = false; diff --git a/base/src/main/java/com/webclip/base/WebViewActivity.java b/base/src/main/java/com/webclip/base/WebViewActivity.java index 99f3766..0821a21 100644 --- a/base/src/main/java/com/webclip/base/WebViewActivity.java +++ b/base/src/main/java/com/webclip/base/WebViewActivity.java @@ -33,6 +33,20 @@ public class WebViewActivity extends AppCompatActivity { ActivityMain2Binding activityMain2Binding; private String url; + private boolean isMainPageUrl(String targetUrl) { + return targetUrl != null && url != null && !url.isEmpty() && targetUrl.startsWith(url); + } + + private void logWebViewUrl(String stage, String rawUrl) { + if (rawUrl == null || rawUrl.isEmpty()) { + LogUtils.i("WebViewURL[" + stage + "]: empty"); + return; + } + Uri uri = Uri.parse(rawUrl); + String host = uri.getHost() == null ? "" : uri.getHost(); + LogUtils.i("WebViewURL[" + stage + "]: " + rawUrl + " | host=" + host + " | scheme=" + uri.getScheme()); + } + @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -105,6 +119,7 @@ public class WebViewActivity extends AppCompatActivity { newWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { + logWebViewUrl("childShouldOverrideUrlLoading", url); activityMain2Binding.progressbar.setVisibility(View.GONE); activityMain2Binding.webview.loadUrl(url); return true; @@ -147,6 +162,7 @@ public class WebViewActivity extends AppCompatActivity { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); + logWebViewUrl("onPageFinished", url); activityMain2Binding.showTopLy.setVisibility(View.GONE); activityMain2Binding.progressbar.setVisibility(View.GONE); activityMain2Binding.topVvvv.setVisibility(View.VISIBLE); @@ -156,6 +172,7 @@ public class WebViewActivity extends AppCompatActivity { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); + logWebViewUrl("onPageStarted", url); activityMain2Binding.progressbar.setVisibility(View.VISIBLE); activityMain2Binding.topVvvv.setVisibility(View.VISIBLE); } @@ -167,11 +184,10 @@ public class WebViewActivity extends AppCompatActivity { int errorCode = error.getErrorCode(); String errorMessage = error.getDescription().toString(); String currentUrl = request.getUrl().toString(); + LogUtils.i("WebViewURL[onReceivedError]: url=" + currentUrl + " | code=" + errorCode + " | msg=" + errorMessage); LogUtils.d("onReceivedError2 url==" + url + " errorCode ==" + errorCode); - if ((errorCode == -2 || errorCode == -6) && currentUrl.contains(url)) { + if (isMainPageUrl(currentUrl)) { onShowErrorView(errorMessage); - } else { - onShowNetView(); } } activityMain2Binding.topVvvv.setVisibility(View.GONE); @@ -182,10 +198,8 @@ public class WebViewActivity extends AppCompatActivity { super.onReceivedError(view, errorCode, description, failingUrl); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { LogUtils.d("onReceivedError2 url==" + failingUrl + " errorCode ==" + errorCode); - if ((errorCode == -2 || errorCode == -6) && failingUrl.contains(url)) { + if (isMainPageUrl(failingUrl)) { onShowErrorView(description); - } else { - onShowNetView(); } } activityMain2Binding.topVvvv.setVisibility(View.GONE); @@ -203,6 +217,7 @@ public class WebViewActivity extends AppCompatActivity { uri = Uri.parse(request.toString()); } String url1 = uri.toString(); + logWebViewUrl("shouldOverrideUrlLoading", url1); if (url1.equals(url + "index") || url1.equals(url + "/index")) { activityMain2Binding.topVvvv.setVisibility(View.GONE); } else { @@ -241,6 +256,7 @@ public class WebViewActivity extends AppCompatActivity { @Override public boolean shouldOverrideUrlLoading(WebView view, String url1) { + logWebViewUrl("shouldOverrideUrlLoadingLegacy", url1); if (url1.equals(url + "index") || url1.equals(url + "/index")) { activityMain2Binding.topVvvv.setVisibility(View.GONE); } else {