首页 > 代码库 > 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的简单展示