WebView的使用

来源:互联网 发布:suse网络不通 编辑:程序博客网 时间:2024/06/06 07:26
项目地址:http://download.csdn.net/detail/daidaishuiping/9773318
一、webView常用方法
public void loadWebView() {

String url = "http://www.baidu.com";
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("加载资源...");
dialog.show();

//webView通过浏览器加载url
webView.loadUrl(url);

//通过webView加载资源
webView.setWebViewClient(new WebViewClient() {

//重写该方法返回true实现webView加载资源
@Override
public boolean shouldOverrideUrlLoading(WebView webview, String url) {
webview.loadUrl(url);
return true;
}

//加载完成取消进度条
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
dialog.dismiss();
}
});

// 启动支持JavaScript
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
// 优先使用缓存机制
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
}

二、细节:
1、webView加载本地资源
webView.loadUrl("file:///android_asset/JavaAndJavaScriptCall.html");
2、Java调JS代码(javaCallJs()方法是JS中的方法,account是javaCallJs()方法的参数)
webView.loadUrl("javascript:javaCallJs(" + "'" + account + "'" + ")");
3、JS调Java代码(注意必须要有@JavascriptInterface这个注解,不然会报错)
class WebHolst{
@JavascriptInterface
public void showToast(){
Toast.makeText(LoginActivity.this,"java代码被调用了",Toast.LENGTH_SHORT).show();
}
}
//第二个参数是用来给JS调用WebHolst这个类里面的方法的
webView.addJavascriptInterface(new WebHolst(),"Android");
注意:不管是Java调JS还是JS调Java都无法获取返回值,只能通过传递参数的返回获取数据
4、WebSettings
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true); // 启动支持JavaScript
settings.setBuiltInZoomControls(true);// 设置支持缩放
settings.setSupportZoom(false);// 不支持缩放
settings.setUseWideViewPort(false);// 将图片调整到适合webview大小
settings.setLoadWithOverviewMode(true);// 缩放至屏幕的大小
settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);//支持缓存


1 0