webview常用于加载一些和iOS公用或者格式比较复杂的页面,像新闻详情页面,由于图片和文字位置,数量都不确定,导致在android下xml没办法编写。
使用的话也是非常简单,在xml文件中直接引用<WebView>控件即可。在类中的使用方法,
WebSettings settings = webview.getSettings();
settings.setWebChromeClient(new WebChromeClient() { }); settings.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return false; } }); settings.setJavaScriptEnabled(true); settings.setAllowFileAccess(true);// 允许访问文件 settings.setBuiltInZoomControls(true);// 设置显示缩放按钮 settings.setSupportZoom(true);// 支持缩放 settings.setTextSize(); // 这里的设置字体大小并不指字号,textSize形式的属性,共有5个,需要用到的可以自己查看设置 settings.setAllowFileAccess(true);// 允许访问文件 settings.setBuiltInZoomControls(true);// 设置显示缩放按钮 settings.setSupportZoom(true);// 支持缩放
//********************************************* 需要支持缓存的设置 // 设置支持本地存储 settings.setDatabaseEnabled(true); //取得缓存路径 String path = getApplicationContext().getDir("cache", Context.MODE_PRIVATE).getPath(); //设置路径 settings.setDatabasePath(path); //设置支持DomStorage settings.setDomStorageEnabled(true); //设置存储模式 settings.setCacheMode(WebSettings.LOAD_DEFAULT); //设置缓存 settings.setAppCacheEnabled(true); webView.requestFocus(); //***********************************************
webView.loadUrl("www.baidu.com"); // 加载普通网页, webView.loadData(); // </p> webView.loadDataWithBaseURL(); // 返回的html标签,本地解析 ,不同的加载方式,可能理解有错误,谨慎使用
// 如果有页面交互的话需要写接口调用了
webView.addJavascriptInterface(new XXXXJavascriptInterface(),"h5");
// 设置顶部进度条,比例按照参数计算就行了 fullWebView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); } });
大概