android开发的时候,我们通常需要设置一个通用WebViewActivity
public class WebViewActivity extends BaseActivity {
public static final String URL = "url";
@Bind(R.id.iv_back)
ImageView mIvBack;
@Bind(R.id.tv_title)
TextView mTvTitle;
@Bind(R.id.pb_loading)
ProgressBar mPbLoading;
@Bind(R.id.wv_content)
WebView mWvContent;
@Override
protected int provideContentViewId() {
return R.layout.activity_web_view;
}
@Override
public void initView() {
Eyes.setStatusBarColor(this, UIUtils.getColor(R.color.status_color_grey));
}
@Override
public void initData() {
String url = getIntent().getStringExtra(URL);
mWvContent.loadUrl(url);
}
@Override
public void initListener() {
WebSettings settings = mWvContent.getSettings();
settings.setJavaScriptEnabled(true);
mWvContent.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
mPbLoading.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
mPbLoading.setVisibility(View.GONE);
}
});
mWvContent.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
mPbLoading.setProgress(newProgress);
}
});
mWvContent.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK && mWvContent.canGoBack()) { //表示按返回键
mWvContent.goBack(); //后退
return true; //已处理
}
}
return false;
}
});
}
@OnClick(R.id.iv_back)
public void onViewClicked() {
finish();
}
布局文件:activity_web_view
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include layout="@layout/include_top" />
<ProgressBar
android:id="@+id/pb_loading"
style="@style/StyleProgressBarMini"
android:layout_width="match_parent"
android:layout_height="3dp"
android:background="@drawable/shape_progressbar_bg" />
<WebView
android:id="@+id/wv_content"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
效果显示