webview是android自带的展示url页面的控件。
在使用时首先要进行:WebSetting的设置。
如:
webSettings.setDefaultTextEncodingName("UTF-8");
webSettings.setJavaScriptEnabled(true);// 设置支持javascript脚本
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setUseWideViewPort(true);//关键点
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webSettings.setDisplayZoomControls(false);
webSettings.setAllowFileAccess(true); // 允许访问文件
webSettings.setBuiltInZoomControls(true); // 设置显示缩放按钮
webSettings.setSupportZoom(true); // 支持缩放
webSettings.setPluginState(WebSettings.PluginState.ON);
然后使用设置监听:setWebViewClient()和setWebChromeClient();
1、setWebViewClient()在影响View的事件到来时,回调此方法,整个View。
/**
* 在开始加载网页时会回调
*/
public void onPageStarted(WebView view, String url, Bitmap favicon)
/**
* 在结束加载网页时会回调
*/
public void onPageFinished(WebView view, String url)
/**
* 拦截 url 跳转,在里边添加点击链接跳转或者操作
*/
public boolean shouldOverrideUrlLoading(WebView view, String url)
/**
* 加载错误的时候会回调,在其中可做错误处理,比如再请求加载一次,或者提示404的错误页面
*/
public void onReceivedError(WebView view, int errorCode,String description, String failingUrl)
/**
* 当接收到https错误时,会回调此函数,在其中可以做错误处理
*/
public void onReceivedSslError(WebView view, SslErrorHandler handler,SslError error)
/**
* 在每一次请求资源时,都会通过这个函数来回调
*/
public WebResourceResponse shouldInterceptRequest(WebView view,
String url) {
return null;
}
2、setWebChromeClient()在影响浏览器的事件到来,调用方法。
/**
* 当网页调用alert()来弹出alert弹出框前回调,用以拦截alert()函数
*/
public boolean onJsAlert(WebView view, String url, String message,JsResult result)
/**
* 当网页调用confirm()来弹出confirm弹出框前回调,用以拦截confirm()函数
*/
public boolean onJsConfirm(WebView view, String url, String message,JsResult result)
/**
* 当网页调用prompt()来弹出编辑弹出框前回调,用以拦截prompt()函数
*/
public boolean onJsPrompt(WebView view, String url, String message,String defaultValue, JsPromptResult result)
/**
* 打印信息(console)或者提示信息
*/
public boolean onConsoleMessage(ConsoleMessage consoleMessage)
/**
* 通知程序当前页面加载进度
*/
public void onProgressChanged(WebView view, int newProgress)
3、往HTML中添加一段代码片方式LoadData()与loadDataWithBaseURL()
public void loadData(String data, String mimeType, String encoding)
public void loadDataWithBaseURL(String baseUrl, String data,String mimeType, String encoding, String historyUrl)
LoadData()
String summary = "You scored 192 points.";
mWebView.loadData(summary, "text/html", "utf-8");
loadDataWithBaseURL()
String baseURL = "http://img6.ph.126.net";
String data = "漂亮MM
";
mWebView.loadDataWithBaseURL(baseURL, data, "text/html", "utf-8", null);
String baseURL = "http://img6.ph.126.net";
String data = "绝对网页地址:" +
"
" +"本地地址:" +
"
" +"相对地址:" +
"";
mWebView.loadDataWithBaseURL(baseURL, data, "text/html", "utf-8", null);
文章引用:http://blog.csdn.net/harvic880925/article/details/51583253