一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述添加自定义android webview错误页面相关的知识,希望能为你提供帮助。
在我的应用程序中,我想要一个错误活动“NOT A ERROR html PAGE”。其中包含刷新按钮和布局。我搜索它但我发现只是资产文件夹中的自定义html错误页面。
我创建了一些下面的代码,我想要的是,当发生网络错误时,它将打开这样的活动,用户可以使用按钮轻松刷新页面。
我想制作像这样的错误页面..
文章图片
这不是一个HTML错误页面。这包含带刷新按钮的布局,
public WebView mWebview ;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map);
mWebview= new WebView(this);
mWebview.getSettings().setjavascriptEnabled(true);
// enable javascriptmWebview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {// Do Something Here,I don't know what to do.. :(}
});
mWebview.loadUrl("google.com");
setContentView(mWebview);
}@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.option, menu);
return true;
}@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {case R.id.refresh:
startActivity(new Intent(this, CeS1.class));
finish();
return true;
case R.id.about:
startActivity(new Intent(this, Credits_activity.class));
finish();
return true;
case R.id.gotomain:
startActivity(new Intent(this, MenuActivity.class));
return true;
default:
return super.onOptionsItemSelected(item);
}
}
答案在你的代码中调用它
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//place you error code here
}
});
另一答案您可以创建包含2个图层的布局。一个是
WebView
,另一个是你的错误布局。当你的WebView
遇到网络错误时,你可以隐藏你的WebView
并显示带有重试按钮的errorView。另一答案【添加自定义android webview错误页面】首先,将HTML错误页面放在资产文件夹中,然后根据以下代码覆盖onReceivedError,
private class MyWebViewClient extends WebViewClient {
.
.
.// api<
23
@Override
public void onReceivedError(WebView view, int errorCode, String description, String url) {
view.stopLoading();
webview.loadUrl("file:///android_asset/error/error.html");
}// api>
23
@Override
@TargetApi(android.os.Build.VERSION_CODES.M)
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
view.stopLoading();
webview.loadUrl("file:///android_asset/error/error.html");
//super.onReceivedError(view, request, error);
}
.
.
.}
推荐阅读
- 如何使Symfony Project 1.4.20与PHP 5.5或5.6完全兼容(不推荐使用(preg_replace()警告))
- 为什么我的android studio 3.5.3中缺少“ app”文件夹
- 以HTML集成WhatsApp jQuery
- [在新计算机上运行项目或删除数据库文件夹时,未在Android Studio中创建SQLite数据库
- 文件的目录查找失败…在操作系统中。 …找不到App_Data /…mdf
- Github页面和React App不管使用什么方法都无法工作
- 如何使用Android的Camera2 API
- 为什么Android测试运行器报告“空测试套件”()
- 如何在Android应用程序中启用TLS 1.2支持(在Android 4.1 JB上运行)