当前位置: 首页 > 知识库问答 >
问题:

如何在Android WebView应用程序中添加自定义错误页面而不会出现任何错误?

华和悦
2023-03-14

以下代码是应用程序的Mainactive。我尝试使用以下方法添加自定义错误页面:

mywebView。setWebViewClient(new WebViewClient(){@Override public void onReceivedError(WebView视图,int errorCode,String description,String failingUrl){mywebView.loadUrl(“file:///android_asset/error.html"); } });

当我在主活动中使用上述代码时,错误页面或加载图标一次都在工作。(相互覆盖)。

我不明白我错在哪里。有人能帮我解决这个问题吗?提前谢谢。

public class MainActivity extends AppCompatActivity {

public WebView mywebView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mywebView = (WebView)findViewById(R.id.webView);
    WebSettings webSettings = mywebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mywebView.loadUrl("http://google.com/");
    mywebView.setWebViewClient(new WebViewClient());
    mywebView.setDownloadListener(new DownloadListener() {
        public void onDownloadStart(String url, String userAgent,
                                    String contentDisposition, String mimetype,
                                    long contentLength) {
            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setData(Uri.parse(url));
            startActivity(i);
        }
    });
    mywebView.setWebViewClient(new WebViewClient() {
        public void onPageStarted(WebView view, String url, Bitmap favicon) {

            super.onPageStarted(view, url, favicon);
            findViewById(R.id.progress).setVisibility(View.VISIBLE);
        }

       public void onPageFinished(WebView view, String url) {
            findViewById(R.id.progress).setVisibility(View.GONE);
        }
    });
}
public void onBackPressed() {
    if(mywebView.canGoBack()){
        mywebView.goBack();
    } else {
        super.onBackPressed();
    }
}}

共有1个答案

那博瀚
2023-03-14
 mywebView.setWebViewClient(new WebViewClient() {
        public void onPageStarted(WebView view, String url, Bitmap favicon) {

            super.onPageStarted(view, url, favicon);
            findViewById(R.id.progress).setVisibility(View.VISIBLE);
        }

       public void onPageFinished(WebView view, String url) {
            findViewById(R.id.progress).setVisibility(View.GONE);
        }

        public void onReceivedError(WebView webview, int i, String s, String s1)
        {
            webview.loadUrl("file:///android_asset/error.html");
        }
    });

最后我找到了解决办法。

 类似资料:
  • Flask 自带了很顺手的 abort() 函数用于以一个 HTTP 失败代码 中断一个请求,他也会提供一个非常简单的错误页面,用于提供一些基础的描述。 这个页面太朴素了以至于缺乏一点灵气。 依赖于错误代码的不同,用户看到某个错误的可能性大小也不同。 通常的错误代码 下面列出了一些用户经常遇到的错误代码,即使在这个应用准确无误的情况下也可能发生: 404 Not Found 经典的“哎呦,您输入的

  • 我刚刚在运行PHP7.0.14的CentOS安装程序上安装了Symfony。但是,我在尝试运行时遇到以下问题: 我已经在网上寻找答案,并且已经尝试在php.ini中设置

  • 问题内容: 我读到AppError类现在是为了向后兼容,应该改用Exceptions。如何为404错误或完全自定义错误之类的内容创建自定义错误页面? 问题答案: 尝试这个: /app/Config/core.php 异常渲染需要设置为。例: /app/Controller/ErrorsController.php /app/Lib/Error/AppExceptionRenderer.php /a

  • config/packages/security.yaml: src/Controller/SecurityController.php: src/Controller/DefaultController.php 模板/安全/login.html.twig: 我想加载我的 /admin或 /login页面我得到的错误: InvalidConfigurationExc0019无法识别的选项"secu

  • 当我创建如上图所示的UDF函数时,我得到任务序列化错误。只有在使用在集群部署模式下运行代码时,才会出现此错误。然而,它在Spark-Shell中运行良好。 我尝试添加,但没有解决问题。

  • 我试图安装Vue-CLI。 但是我有很多错误。 已弃用的core-js@2.6.11:core-js@ 我试图重新安装