package com.tejia.lijin.app.ui;
|
|
import android.annotation.SuppressLint;
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.graphics.Bitmap;
|
import android.graphics.PixelFormat;
|
import android.os.Bundle;
|
import android.view.KeyEvent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.webkit.WebChromeClient;
|
import android.webkit.WebResourceRequest;
|
import android.webkit.WebSettings;
|
import android.webkit.WebView;
|
import android.webkit.WebViewClient;
|
import android.widget.Button;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog;
|
import com.tejia.lijin.app.util.AndroidBug5497Workaround;
|
import com.tejia.lijin.app.util.TopStatusSettings;
|
import com.tejia.lijin.app.util.web.RebateJavaInterface;
|
import com.tejia.lijin.app.util.web.RebateJavaInterfaceBS;
|
import com.wpc.library.util.common.StringUtils;
|
|
public class SimpleBrowserActivity extends Activity implements OnClickListener {
|
|
private TextView tv_top_bar_left;
|
private TextView tv_top_bar_left2;
|
private ImageView iv_right;
|
private Button tv_top_bar_middle;
|
private WebView webview;
|
private FrameLayout fl_webview;
|
View v_cover_web;
|
ProgressBar progressBar;
|
ShapeLoadingDialog pd = null;
|
String mTitle;
|
RebateJavaInterface javaInterface;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.browser_activity);
|
// AndroidBug5497Workaround.assistActivity(this);
|
// TopStatusSettings.setStatusViewAndDeepColor(this);
|
// getWindow().setFormat(PixelFormat.TRANSLUCENT);
|
tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_left2 = findViewById(R.id.tv_top_bar_left2);
|
tv_top_bar_left2.setVisibility(View.VISIBLE);
|
tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle1);
|
v_cover_web = findViewById(R.id.v_cover_web);
|
iv_right = findViewById(R.id.iv_top_bar_right);
|
iv_right.setVisibility(View.GONE);
|
fl_webview = findViewById(R.id.fl_webview);
|
|
tv_top_bar_left.setOnClickListener(this);
|
tv_top_bar_left2.setOnClickListener(this);
|
iv_right.setOnClickListener(this);
|
v_cover_web.setOnClickListener(this);
|
tv_top_bar_middle.setVisibility(View.VISIBLE);
|
|
|
mTitle = getIntent().getStringExtra("title");
|
if (!StringUtils.isEmpty(mTitle)) {
|
tv_top_bar_middle.setText(mTitle);
|
}
|
pd = new ShapeLoadingDialog.Builder(this).build();
|
|
webview = new WebView(SimpleBrowserActivity.this);
|
|
fl_webview.addView(webview, new FrameLayout.LayoutParams(
|
FrameLayout.LayoutParams.MATCH_PARENT,
|
FrameLayout.LayoutParams.MATCH_PARENT));
|
|
|
initWebView();
|
progressBar = findViewById(R.id.myProgressBar);
|
progressBar.setMax(100);
|
progressBar.setProgressDrawable(this.getResources()
|
.getDrawable(R.drawable.color_progressbar));
|
webview.loadUrl(getIntent().getStringExtra("url"));
|
}
|
|
/**
|
* 初始化webview
|
*/
|
@SuppressLint("SetJavaScriptEnabled")
|
private void initWebView() {
|
WebSettings webSettings = webview.getSettings();
|
webSettings.setJavaScriptEnabled(true);
|
webSettings.setDomStorageEnabled(true);
|
webSettings.setUseWideViewPort(true);
|
webSettings.setTextZoom(100);
|
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);//设置缓存模式(根据cache-control决定是否从网络上取数据。)
|
|
webview.setWebViewClient(webViewClient);
|
webview.setWebChromeClient(webChromeClient);
|
javaInterface = new RebateJavaInterface(SimpleBrowserActivity.this,
|
tv_top_bar_middle, tv_top_bar_left2, new TextView(this), iv_right, webview, pd);
|
webview.addJavascriptInterface(javaInterface, "yestv");
|
}
|
|
WebViewClient webViewClient = new WebViewClient() {
|
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
|
System.out.println("shouldOverrideUrlLoading");
|
return super.shouldOverrideUrlLoading(view, request);
|
}
|
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
if (!url.startsWith("http"))
|
return true;
|
return super.shouldOverrideUrlLoading(view, url);
|
}
|
|
@Override
|
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
super.onPageStarted(view, url, favicon);
|
if (view.canGoBack()) {
|
tv_top_bar_left2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_web_close, 0, 0, 0);
|
} else {
|
tv_top_bar_left2.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
}
|
}
|
};
|
|
WebChromeClient webChromeClient = new WebChromeClient() {
|
|
|
@Override
|
public void onReceivedTitle(WebView view, String title) {
|
if (StringUtils.isEmpty(mTitle) && null != title && !StringUtils.isEmpty(title.trim())) {
|
tv_top_bar_middle.setText(title);
|
}
|
}
|
|
@Override
|
public void onProgressChanged(WebView webView, int i) {
|
if (i == 100) {
|
progressBar.setVisibility(View.GONE);
|
} else {
|
if (View.INVISIBLE == progressBar.getVisibility()) {
|
progressBar.setVisibility(View.VISIBLE);
|
}
|
progressBar.setProgress(i);
|
}
|
super.onProgressChanged(webView, i);
|
}
|
|
};
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
if (webview != null) {
|
webview.onResume();
|
webview.loadUrl("javascript:yestvcallback.resume()");
|
}
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
if (webview != null) {
|
webview.onPause();
|
}
|
}
|
|
@Override
|
protected void onDestroy() {
|
if (webview != null) {
|
webview.removeAllViews();
|
webview.destroy();
|
}
|
super.onDestroy();
|
}
|
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {
|
if (webview.canGoBack()) {
|
webview.goBack();
|
} else {
|
finish();
|
}
|
}
|
break;
|
case R.id.tv_top_bar_left2: {
|
finish();
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
|
@Override
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
|
if (webview.canGoBack()) {
|
webview.goBack(); // goBack()表示返回WebView的上一页面
|
return true;
|
} else {
|
finish();
|
}
|
}
|
return super.onKeyDown(keyCode, event);
|
}
|
|
|
@Override
|
protected void onNewIntent(Intent intent) {
|
super.onNewIntent(intent);
|
}
|
}
|