27
2017
09

WebView的加载

WebView加载页面的两种方式

一、加载网络页面

  加载网络页面,是最简单的一种方式,只需要传入http的URL就可以,实现WebView加载网络页面

代码如下图:

二、加载本地页面

  1、加载assets目录下的HTML页面:

加载assets目录的页面,大多数可以用来做页面数据的存储打包,这样可以访问 离线文件,不用去进行网络请求,可以减少用户数据流量的使用

示例代码如下:

//加载assets目录文件
webView.loadUrl(“file:///android_asset/staticHtml.html”);

在这里面,解释一下引号里面每个字段的意思和作用:

file字段,表示读取本地文件,不读取网络文件。

android_asset表示读取当前应用的assets目录下的文件

staticHtml.html表示assets目录下的HTML页面

  2、加载缓存到本地的页面

加载缓存到本地的页面,这个主要可以用来做页面的离线缓存

例如将html文件存储到本地文件目录下
复制代码

//文件存储的本地文件夹路径
    File filesDir = getFilesDir().getAbsoluteFile();
    //本地存储的文件
    File destFile = new File(filesDir, "staticHtmlcopy.html");
    //将assets路径下的文件copy到filesDir路径下,注:此处也可以通过网络访问,对页面进行存储
    InputStream is = null;
    try {
        is = getAssets().open("staticHtml.html");
        if (destFile.exists()) {
            destFile.delete();
        }
        FileOutputStream out = new FileOutputStream(destFile);
        try {
            byte[] buffer = new byte[4096];
            int bytesRead;
            while ((bytesRead = is.read(buffer)) >= 0) {
                out.write(buffer, 0, bytesRead);
            }
        } finally {
            out.flush();
            try {
                out.getFD().sync();
            } catch (IOException e) {
            }
            out.close();
        }

    } catch (IOException e) {
        e.printStackTrace();
    }
    //拼接生成WebView使用的url地址
    String url="file://"+destFile.getAbsolutePath();
    webView.loadUrl(url);
上一篇:Windows对象 下一篇:github管理分支