在我的 WebView 中,标题中有多个链接。在离线模式下,我不允许重新加载页面并保持该页面不变,然后通知用户有关互联网连接的信息。shouldOverrideUrlLoading
如果我单击其他链接,我可以在加载之前捕获链接。但是,如果我单击相同的链接,shouldOverrideUrlLoading
则不会被触发,而是onLoadResource
首先调用方法。在我尝试过的那个方法中webView.stopLoading();
,它继续工作并触发onReceivedError
方法并在页面上显示错误报告。
这是我的网络客户端:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(MyApplication.getInstance().isOnline()) {
return false;
}
Toast.makeText(getApplicationContext(), "Please check Internet connection and try again.", Toast.LENGTH_SHORT).show();
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.i("ON_PAGE_START", "RUNNING ============>" + url);
if (MyApplication.getInstance().isOnline()) {
super.onPageStarted(view, url, favicon);
} else {
webView.stopLoading();
}
}
@Override
public void onLoadResource(WebView view, String url) {
if (MyApplication.getInstance().isOnline()) {
super.onLoadResource(view, url);
} else {
webView.stopLoading();
}
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
view.stopLoading();
Toast.makeText(getApplicationContext(), "Please check Internet connection and try again.", Toast.LENGTH_SHORT).show();
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
我想要的是能够确保在离线时不会触发 url 并通知它。