布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".ui.WebViewActivity"> <android.support.v4.widget.ContentLoadingProgressBar style="?android:attr/progressBarStyleHorizontal" android:id="@+id/web_view_load_progress" android:layout_width="match_parent" android:layout_height="2dp" android:visibility="invisible" android:progressDrawable="@drawable/webview_load_progress_drawable" /> <WebView android:id="@+id/common_web_view" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>activity使用
mWebView.getSettings().setJavaScriptEnabled(true); //设置允许执行js脚本 // mWebView.addJavascriptInterface(new AndroidH5(this, mWebView), "AndroidH5"); mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);//进度条不占位 mWebView.getSettings().setAppCacheEnabled(true); //设置使用浏览器缓存 mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); //设置换成模式 // webUrl = "http://172.168.2.3:8010/broker/lp_info.html?buildingid=7118&from=android"; mWebView.loadUrl(urlGenerate(webUrl)); mWebView.setWebChromeClient(new WebChromeClient() {//webview 提供的一个专门处理进度的方法 @Override public void onProgressChanged(WebView view, int newProgress) { progressBar.setProgress(newProgress); if(100 == newProgress) { progressBar.setVisibility(View.GONE); } else { progressBar.setVisibility(View.VISIBLE); } super.onProgressChanged(view, newProgress); } }); mWebView.setWebViewClient(new WebViewClient(){//webView 提供加载地址的方法 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(urlGenerate(url)); return true;//super.shouldOverrideUrlLoading(view, url); }
/** * url添加公共参数 * @param url * @return */ public String urlGenerate(String url) { if(url.endsWith("html")) { url = url+"?from=android"; } else { url = url+"&from=android"; } return url; }