首页 > 代码库 > WebView的简单展示
WebView的简单展示
<WebView
android:id="@+id/detail_wv_webview" android:layout_width="match_parent" android:layout_height="match_parent"/>
WebView相当于浏览器,耗费内存比较大 (ZHBJ、 GoogleMarket中)
mWebView = (WebView) findViewById(R.id.detail_wv_webview);
mWebView.loadUrl(mNews.url);// 根据网页的地址,打开网页
// 获取webview的设置
WebSettings settings = mWebView.getSettings();
settings.setBuiltInZoomControls(true);// 设置是否显示放大缩小网页的按钮(wap网页不支持)
settings.setUseWideViewPort(true);// 设置是否支持双击放大(wap网页不支持)
settings.setJavaScriptEnabled(true);// 设置是否支持android和网页中js代码的互调
//如果想要webview支持网页中的alert,比如给weview设置WebChromeClient
mWebView.setWebChromeClient(new WebChromeClient());
// 加载网页的时候显示进度条。。。
// 监听网页的加载操作
mWebView.setWebViewClient(new WebViewClient() {
// 网页开始加载的时候调用的方法
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
mLoding.setVisibility(View.VISIBLE);
super.onPageStarted(view, url, favicon);
}
// 网页加载完成的时候调用的方法
@Override
public void onPageFinished(WebView view, String url) {
mLoding.setVisibility(View.GONE);
super.onPageFinished(view, url);
}
});
//js调用android代码的操作
//设置js可以调用的android的接口对象方法
//参数1:js调用android的接口对象
//参数2:js调用Android的接口对象的别名
mWebView.addJavascriptInterface(new JsCallAndroid() {
//Andorid4.2之后必须添加注解:@JavascriptInterface,提供安全性
@Override
@JavascriptInterface
public void back() {
Toast.makeText(NewsDetailActivity.this, "js调用了Android了", 0).show();
finish(); //JS调用Android中的方法,放在接口实例对象的方法内
//跳转到商品详情页面的操作放在接口实例中
}
}, "Android");
//JS调用Android的接口 ,相当于通往两者之间的管道
public interface JsCallAndroid{
public void back();
}
谷歌市场中
import android.webkit.WebViewClient;
WebView mContentWv = getViewById(R.id.wv_webview_content);
//回调中 设置加载完毕取消进度的刷新 mContentWv.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); mRefreshLayout.endRefreshing(); } });
//设置WebView和JS互调的方法,允许Android执行js脚本设置
mContentWv.getSettings().setJavaScriptEnabled(true);
mContentWv.loadUrl("https://github.com/bingoogolapple");
开源中国
//WebView比较耗内存,使用完尽量销毁掉
protected WebView mWebView; protected void recycleWebView() { if (mWebView != null) { mWebView.setVisibility(View.GONE); mWebView.removeAllViews(); mWebView.destroy(); mWebView = null; } }
WebView的简单展示