WebView的使用详解

来源:互联网 发布:java汉化版 编辑:程序博客网 时间:2024/05/01 11:39

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 onclick="testJavaScript.showToast('测试')"/>


0 0