WebView加载页面的两种方式
一、加载网络页面
加载网络页面,是最简单的一种方式,只需要传入http的URL就可以,实现WebView加载网络页面
代码如下图:
二、加载本地页面
1、加载assets目录下的HTML页面:
加载assets目录的页面,大多数可以用来做页面数据的存储打包,这样可以访问 离线文件,不用去进行网络请求,可以减少用户数据流量的使用
示例代码如下:
//加载assets目录文件 webView.loadUrl("file:///android_asset/staticHtml.html");
在这里面,解释一下引号里面每个字段的意思和作用:
android_asset表示读取当前应用的assets目录下的文件
staticHtml.html表示assets目录下的HTML页面
2、加载缓存到本地的页面
//文件存储的本地文件夹路径 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可能存在跨域,或者相对路径的情况,所以最好自己先写一些简单的页面做测试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。