美文网首页
【黑马程序员济南中心】webview踩过的坑

【黑马程序员济南中心】webview踩过的坑

作者: b06ee9db5ac0 | 来源:发表于2018-04-28 09:53 被阅读0次

    1. android中不支持h5中的audio标签

    解决方案:

    需要播放声音只能通过video标签来实现

    2.关于webview的本地存储

    解决方案:

    webView.getSettings().setDomStorageEnabled(true);

    webView.getSettings().setAppCachePath(Constants.FileCachePath);

    webView.getSettings().setAllowFileAccess(true);

    webView.getSettings().setAppCacheEnabled(true);

    3.第一次进入activity时webview正常,第二次进入webview显示空白,显示的进度到不了100

    解决方案:

    if (Build.VERSION.SDK_INT >= 11) {

        webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

    }

    4.关于webview加载本地资源和加载网络资源同时进行时效率降低

    解决方案:

    在webview加载网页之前

    if(Build.VERSION.SDK_INT >= 19) {

            webView.getSettings().setLoadsImagesAutomatically(true);

    } else {

            webView.getSettings().setLoadsImagesAutomatically(false);

    }

    然后在onpagefinished方法里面做监听,当页面完成的时候再去做相应的加载图片

    public void onPageFinished(WebView view, String url) {

        if(!webView.getSettings().getLoadsImagesAutomatically()) {

            webView.getSettings().setLoadsImagesAutomatically(true);

        }

    }

    5.修改webview加载错误的提示页面类似404,403等页面,让原生来实现这个页面,我们可以通过重写onreceivederror方法

    解决方案:

    public void onReceivedError (WebView view, int errorCode, String description, String failingUrl) {

        super.onReceivedError(view, errorCode, description, failingUrl);

        loadDataWithBaseURL(null, "", "text/html", "utf-8", null);

        switch(errorCode){

          case 404:

            errorView.setBackgroundRes...(XXXXX);

            break; 

        }

        errorView.setVisibility(View.VISIBLE);

    }

    相关文章

      网友评论

          本文标题:【黑马程序员济南中心】webview踩过的坑

          本文链接:https://www.haomeiwen.com/subject/kqgwlftx.html