WebView加载页面的两种方式——网络页面和本地页面

简介: WebView加载页面的两种方式一、加载网络页面  加载网络页面,是最简单的一种方式,只需要传入http的URL就可以,实现WebView加载网络页面代码如下图:二、加载本地页面  1、加载assets目录下的HTML页面:加载assets目录的页面,大多数可以用来做页面数据的存储打包...

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);

 

注:一些网络上直接抓取的页面里面一些js可能存在跨域,或者相对路径的情况,所以最好自己先写一些简单的页面做测试。

相关文章
|
5月前
|
移动开发 小程序 Android开发
小程序webview组件嵌H5页面,安卓手机没有问题,苹果有部分页面不显示
小程序webview组件嵌H5页面,安卓手机没有问题,苹果有部分页面不显示
109 0
|
6月前
|
API Android开发 数据安全/隐私保护
解决android webview 加载http url 失败 net::ERR_CLEARTEXT_NOT_PERMITTED 错误
解决android webview 加载http url 失败 net::ERR_CLEARTEXT_NOT_PERMITTED 错误
235 0
|
1月前
|
数据采集 前端开发 JavaScript
Java网络爬虫实践:解析微信公众号页面的技巧
Java网络爬虫实践:解析微信公众号页面的技巧
|
3月前
|
Android开发
vscode的webview页面
vscode的webview页面
|
5月前
|
移动开发 小程序 Android开发
uniapp使用webview将页面转换成图片支持h5、app、小程序
uniapp使用webview将页面转换成图片支持h5、app、小程序
|
7月前
|
小程序 开发工具 Android开发
微信小程序 - webview 动态加载(网页) 以及加载域名的限制
微信小程序 - webview 动态加载(网页) 以及加载域名的限制
423 0
|
8月前
|
编解码 前端开发 JavaScript
响应式图像优化:如何根据用户设备和网络条件优化网页中的图像,以提高用户体验和加载速度。
响应式图像优化:如何根据用户设备和网络条件优化网页中的图像,以提高用户体验和加载速度。
|
8月前
|
前端开发 JavaScript
前端项目实战陆-pad端原生网络请求页面无反应
前端项目实战陆-pad端原生网络请求页面无反应
50 0
|
9月前
|
Android开发
Electron使用webview加载部分https页面时,会因为证书出现白屏
Electron使用webview加载部分https页面时,会因为证书出现白屏
375 0
|
9月前
|
域名解析 缓存 网络协议
计算机网络面试专题:URL地址栏中输入网址到页面展示的全过程&&DNS域名解析的过程
计算机网络面试专题:URL地址栏中输入网址到页面展示的全过程&&DNS域名解析的过程
84 1