您的位置:首页 > 移动开发

WebView的使用详解

2016-11-24 01:08 459 查看

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('测试')"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: