[英](android studio) can't change the "Webpage not available" page in webview
我正在尝试在我的应用中显示我自己的“无互联网”页面。 我认为我的代码可能有问题,我一直在关注本教程,但出于某种原因,我的代码一直显示默认的“网页不可用”屏幕。
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCacheEnabled(true);
webView.loadUrl("https://www.kasumushi.com/");
webView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
webView.loadUrl("file:///android_asset/error.html");
}
});
}
@Override
public void onBackPressed() {
if(webView.canGoBack()) {
webView.goBack();
}else {
super.onBackPressed();
}
}
}
boolean errorOccurred = false; // Global variable
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
hideError();
showProgress();
Toast.makeText(Test.this, "start loading", Toast.LENGTH_SHORT).show();
errorOccurred=false;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (!errorOccurred) {
hideError();
}
hideProgress();
Toast.makeText(Test.this, "Web view was loaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
errorOccurred = true;
hideProgress();
showError();
Toast.makeText(Test.this, "Could not load your page", Toast.LENGTH_SHORT).show();
super.onReceivedError(view, errorCode, description, failingUrl);
Toast.makeText(Test.this, "error", Toast.LENGTH_SHORT).show();
}
});
请您检查以下程序并尝试重新测试您的问题。
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(MainActivity.this, "Error! " + description, Toast.LENGTH_SHORT).show();
//Clear WebView
try {
view.stopLoading();
} catch (Exception e) {
e.printStackTrace();
}
try {
view.clearView();
} catch (Exception e) {
e.printStackTrace();
}
if (view.canGoBack()) {
view.goBack();
}
String ErrorPagePath = "file:///android_asset/htmls/error.html";
view.loadUrl(ErrorPagePath);
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.