一、WebView加载界面的三种方式:
1、loadDataWithBaseURL(String baseUrl, String data,String mimeType, String encoding, String historyUrl);
baseUrl 指定了你的data参数中数据是以什么地址为基准的,因为data中的数据可能会有超链接或者是image元素,而很多网站的地址都是用的相对路径,如果没有baseUrl,webview将访问不到这些资源。
比如: 标签的指定的Url是相对路径,如果没有baseUrl就访问不了。
data HTML文本;
mimeType 资源类型,默认"text/html" ;
encoding 资源的编码;
historyUrl 历史Url
2、loadData(String data, String mimeType, String encoding);
loadData()用的比较少,加载HTML文本时一般都是loadDataWithBaseURL;
loadDataWithBaseURL和loadData两个方法加载的HTML代码片段的不同点在于,loadData()中的html data中不能包含'#', '%', '\', '?'四中特殊字符,在平时测试时,你的数据时,你的数据里含有这些字符,但不会出问题,当出问题时,你可以替换下。
3、loadUrl(String url); 可以是本地的HTML文件,也可以是网页(网络权限)。
二、WebView的一些常用属性:
1、setJavaScriptEnabled(boolean flag) 是否支持JS,默认false。如果想让java与js相互,或者想让js本身完成一定的功能,将此设置为true;
2、setBuiltInZoomControls(true)和 setSupportZoom(true),这两个同时设置为true,才能支持缩放,因为设置setSupportZoom的前提是设置setBuiltInZoomControls;
3、setDisplayZoomControls(false),缩放时看着很烦人的缩放控制器,设置false即可隐藏。通过手势进行缩放。
4、setDefaultFontSize(18);设置默认的字体大小,默认为16,有效值区间在1-72之间。
5、setUseWideViewPort(true)和setLoadWithOverviewMode(true)让网页全部显示在手机屏幕上(自适应屏幕)。
三、设置WebView内的链接直接有本WebView打开,否则点击链接后,跳转到手机其他的浏览器。
m_webNoticeContent.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
四、当用loadUrl()方法打开网页时,默认是用启动手机浏览器打开,如果要用WebView打开,需要以下设置:
private WebViewClient webViewClient = new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
};
m_webView.setWebViewClient(webViewClient);
五、loadDataWithBaseURL给WebView设置data,如果文本中有图片,需要设置图片的大小自适应屏幕,需要修改HTML文本中的img节点:
noticeContent.replace("width是屏幕的宽度
六、WebView中返回时,返回到WebView浏览的上一个界面。
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}