package com.charon.video; import com.charon.video.fragment.OnlineFragment; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.View.OnKeyListener; import android.webkit.DownloadListener; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageView; import android.widget.TextView; public class WebActivity extends Activity { protected static final String TAG = "WebActivity"; private WebView mWebView; private View mLoadingView; private ImageView mLoadingImage; private AnimationDrawable mLoadingAnimation; private TextView mTipTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web); findView(); initView(); } private void findView() { mWebView = (WebView) findViewById(R.id.wv); mLoadingView = findViewById(R.id.loading); mLoadingImage = (ImageView) findViewById(R.id.iv_loading); mTipTextView = (TextView) findViewById(R.id.tv_loading_tip); mLoadingImage.setBackgroundResource(R.drawable.play_loading_anim); mLoadingAnimation = (AnimationDrawable) mLoadingImage.getBackground(); } @SuppressLint("SetJavaScriptEnabled") private void initView() { mTipTextView.setText(R.string.loading_web); showLoadingView(); Intent intent = getIntent(); String url = "http://3g.youku.com"; if (intent != null) { url = intent.getStringExtra(OnlineFragment.URL); } mWebView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setDownloadListener(new DownloadListener() { @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { Log.e(TAG, "onDownload Start :; url is :" + url + ":" + userAgent + "contentDi: " + contentDisposition + ":mine:" + mimetype + ":length::" + contentLength); } }); mWebView.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); Log.d(TAG, "on page finished."); hideLoadingView(); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Log.w(TAG, "page jump should override url loading... url is : " + url); // if (FileUtils.isVideoOrAudio(url)) { // Intent intent = new Intent(getActivity(), // VideoPlayerActivity.class); // intent.putExtra("path", url); // startActivity(intent); // return true; // } // 内部加载,不做外部跳转 // view.loadUrl(url); return false; } }); mWebView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { super.onProgressChanged(view, newProgress); if (newProgress == 100) { hideLoadingView(); } /*else { showLoadingView(); }*/ } }); mWebView.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView != null && mWebView.canGoBack()) { mWebView.goBack(); return true; } return false; } }); mWebView.loadUrl(url); mWebView.clearHistory(); } private void showLoadingView() { mLoadingAnimation.start(); if (mLoadingView.getVisibility() != View.VISIBLE) { mLoadingView.setVisibility(View.VISIBLE); } } private void hideLoadingView() { if (mLoadingAnimation != null && mLoadingAnimation.isRunning()) { mLoadingAnimation.stop(); } mLoadingView.setVisibility(View.GONE); } }