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

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·开车指南 目录 WebView简介 WebView基本使用 WebView常用方法 WebSett...
    小庄bb阅读 3,536评论 3 25
  • 一、WebView 谷歌提供的系统组件,用来加载和展现html网页,其采用webkit内核驱动,来实现网页浏览功能...
    闲庭阅读 7,010评论 2 12
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,498评论 0 17
  • WebView简介 String getUrl():获取当前页面的URL。 reload():重新reload当前...
    QM阅读 3,161评论 0 52
  • 油烟气像是家的味道般存在,回家有一碗热气腾腾的汤饭总是暖心。外面的食物万千可选,却还是容易腻。家里简单小菜,却吃得...
    冰燕飞阅读 239评论 0 1