释放双眼,带上耳机,听听看~!
Android webview加载页面
private WebView webView;
public void init() {
webView = (WebView) findViewById(R.id.webview);
//支持js
webView.getSettings().setJavaScriptEnabled(true);
WebSettings webSettings= webView.getSettings();
//缓存模式
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
//自适应页面
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
// 缩放至屏幕的大小
webView.getSettings().setLoadWithOverviewMode(true);
//支持缩放
webView.getSettings().setSupportZoom(true);
//关闭缩放按钮
webView.getSettings().setBuiltInZoomControls(false);
//隐藏原生的缩放控件
webView.getSettings().setDisplayZoomControls(false);
//启用h5缓存 (webview存在两种缓存:网页数据缓存(存储打开过的页面及资源)、H5缓存(即appcache))
webSettings.setAppCacheEnabled(true)
//h5缓存大小
webSettings.setAppCacheMaxSize(size);
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
//h5缓存路径
webSettings.setAppCachePath(appCachePath);
//设置可以访问文件
webSettings.setAllowFileAccess(true);
//设置开启Dom Storage机制
webSettings.setDomStorageEnabled(true);
//WebView的渲染程度高
webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
webView=getIntent().getStringExtra("webView");
//不阻塞网络图片下载(图片加载不出来的时候,设置有效)
webSettings.setBlockNetworkImage(false);;
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP ) {
//系统默认禁止了mixed content和第三方cookie(当图片不显示的时候,开启MixedContentMode)
webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
//不跳转系统自带的浏览器
webView.setWebViewClient(new LoadWebView());
webView.loadUrl(weburl);
}
//自适应
WebSettings.LayoutAlgorithm.NARROW_COLUMNS :适应内容大小
WebSettings.LayoutAlgorithm.NARROW_COLUMNS :适应屏幕,内容将自动缩放
//缓存模式
1,LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据
2,LOAD_DEFAULT: 根据cache-control决定是否从网络上取数据。
3,LOAD_CACHE_NORMAL: API level 17中已经废弃, 从API level 11开始作用同LOAD_DEFAULT模式
4,LOAD_NO_CACHE: 不使用缓存,只从网络获取数据.
5,LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存中的数据。
//常用缩放meta
1、width : 控制viewport的大小)
2、height :指定高度
3、initial-scale : 初始缩放比例,页面第一次加载时的缩放比例
4、maximum-scale : 允许用户缩放到的最大比例
5、minimum-scale : 允许用户缩放到的最小比例
6、user-scalable : 用户是否可以手动缩放
//Dom Storage机制
dom Storage机制与cookie类似,但是有更大的存储空间 DOM Storage 分为 sessionStorage和 localStorage。localStorage 对象和 sessionStorage 对象使用方法基本相同,它们的区别在于作用的范围不sessionStorage 用来存储与页面相关的数据,它在页面关闭后无法使用。而 localStorage 则持久存在,在页面关闭后也可以使用。
class LoadWebView extends WebViewClient {
//加载完毕时
@Override
public void onPageFinished(WebView view, String url) {
}
//在webview加载URL的时候可以截获这个动作
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
webView.loadUrl(weburl);
return true;
}
//加载开始时
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onReceivedSslError(WebView view,
SslErrorHandler handler, SslError error) {
// handler.proceed();// 接受所有网站的证书
// webView.loadUrl(weburl);
}
}
}