package com.streamlet.appui.activity.common;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.DownloadListener;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.streamlet.R;
import com.streamlet.appui.base.BaseActivity;
import com.streamlet.common.util.UIHelper;
/**
* 通用的web组件
*/
public class WebActivity extends BaseActivity implements OnClickListener, SwipeRefreshLayout.OnRefreshListener {
private static final String WEB_URL = "web_url";
private WebView strategyWebview;
private ProgressBar strategypb;
private TextView tvTitle;
private String webUrl;
private SwipeRefreshLayout mSwipeLayout;
public static void launcher(Context context, String webUrl) {
Intent intent = new Intent();
intent.setClass(context, WebActivity.class);
intent.putExtra(WEB_URL, webUrl);
context.startActivity(intent);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act_web);
initUI();
initData();
}
@SuppressLint("SetJavaScriptEnabled")
protected void initUI() {
findViewById(R.id.leftButton).setOnClickListener(this);
mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
mSwipeLayout.setOnRefreshListener(this);
mSwipeLayout.setColorSchemeResources(R.color.top_bg);
mSwipeLayout.setSize(SwipeRefreshLayout.DEFAULT);
mSwipeLayout.setEnabled(false);
strategyWebview = (WebView) findViewById(R.id.ac_search_strategy_webview);
WebSettings webSettings = strategyWebview.getSettings();
if (webSettings != null) {
webSettings.setJavaScriptEnabled(true);
}
strategyWebview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
strategyWebview.setHorizontalScrollbarOverlay(true);
strategyWebview.setHorizontalScrollBarEnabled(true);
strategyWebview.requestFocus();
strategyWebview.setWebViewClient(new strategyWebViewClient());
strategyWebview.setWebChromeClient(new strategyWebChromeClient());
strategyWebview.setDownloadListener(new MyWebViewDownLoadListener());
strategypb = (ProgressBar) findViewById(R.id.ac_search_strategy_progress);
tvTitle = (TextView) findViewById(R.id.centerTitle);
webUrl = getIntent().getStringExtra(WEB_URL);
}
protected void initData() {
strategyWebview.loadUrl(webUrl);
}
private class strategyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
mSwipeLayout.setEnabled(true);
mSwipeLayout.setRefreshing(false);
super.onPageFinished(view, url);
}
}
private class strategyWebChromeClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
strategypb.setProgress(newProgress);
}
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
if (title.length() > 8) {
title = title.substring(0, 8) + "...";
}
//tvTitle.setText(StringUtils.isEmpty(title)?"优车快洗":title);
tvTitle.setText("窝窝头·优车快洗");
}
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public void onPause() {
super.onPause();
strategyWebview.onPause();
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
public void onResume() {
super.onResume();
strategyWebview.onResume();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
strategyWebview.removeAllViews();
strategyWebview.destroy();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
strategyWebview.loadData("", "text/html; charset=UTF-8", null);
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
private class MyWebViewDownLoadListener implements DownloadListener {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
if ("apk".equals(url.substring(url.lastIndexOf(".") + 1))) {
// DownloadService.luanch(WebActivity.this, "文件", url, R.drawable.icon_home_logo);
} else {
try {
UIHelper.openBrowser(activity, url);
} catch (Exception e) {
showToast("附件错误");
}
}
}
}
@Override
public void onRefresh() {
// TODO Auto-generated method stub
initData();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.leftButton:
finish();
break;
default:
break;
}
}
@Override
public String setTag() {
// TODO Auto-generated method stub
return null;
}
}