1、基本使用:
WebSetting 使用
WebSettings webSettings = webView.getSettings(); //设置是否支持缩放 webSettings.setSupportZoom(true); webSettings.setBuiltInZoomControls(true); //设置是否显示缩放按钮 webSettings.setDisplayZoomControls(true); //设置WebView是否允许执行JavaScript脚本,默认false,不允许 webSettings.setJavaScriptEnabled(true); //设置自适应屏幕宽度 webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true);
更多设置参考:http://blog.csdn.net/a2241076850/article/details/52983939
WebViewClient 使用
WebViewClient为WebView处理请求与通知
webView.setWebViewClient(new WebViewClient() { //设置是否在WebView中处理url请求,若不重新,默认会调用浏览器打开 @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { //返回true时,表示页面响应需自己处理,无法自动跳转,返回false则可以响应链接点击 return false; } });
WebChromeClient 使用
WebChromeClient为WebView处理JS对话框,网站图标,网站Title等内容
webView.setWebChromeClient(new WebChromeClient() { //显示加载进度 @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); tv.setText(newProgress + "%"); } //获取页面的Title @Override public void onReceivedTitle(WebView view, String title) { super.onReceivedTitle(view, title); Toast.makeText(MainActivity.this, title, Toast.LENGTH_LONG).show(); } });
在WebView中使用JavaScript调用Android方法
a)调用webSetting的setJavaScript(true)启动JavaScript调用功能;
webSettings.setJavaScriptEnabled(true);
b)给Android中需要暴露给JavaScript的函数加注解
public class TestJavaScript { private Context context; public TestJavaScript(Context context){ this.context = context; } /** * 暴露给JavaScript的接口 * @param content */ @JavascriptInterface public void showToast(String content){ Toast.makeText(context,content,Toast.LENGTH_SHORT).show(); } }
c)调用WebView的addJavaScriptInterface(Object object, String name)方法将object对象暴露给JavaScript脚本;
webView.addJavascriptInterface(new TestJavaScript(MainActivity.this),"testJavaScript");
d)在JavaScript脚本中将通过上一步暴露的name对象调用Android方法;
<input οnclick="testJavaScript.showToast('测试')"/>