package com.team.zhuoke.view.live.activity;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.team.zhuoke.R;
import com.team.zhuoke.base.BaseActivity;
import com.team.zhuoke.base.BaseView;
import com.team.zhuoke.base.SwipeBackActivity;
import com.team.zhuoke.utils.Utils;
import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient;
import com.tencent.smtt.sdk.WebChromeClient;
import com.tencent.smtt.sdk.WebSettings;
import com.tencent.smtt.sdk.WebView;
import com.tencent.smtt.sdk.WebViewClient;
import butterknife.BindView;
import butterknife.OnClick;
/**
* Created by renxl on 2016/11/24.
* <p>
* // TODO: 2016/11/26 跳转 WebViewActivity 界面的时候不要让其他人 关心需要怎么传参数,只需要 传入参数即可。写一个 PageCtrl 的类来做 所有 Activity 的跳转。试试做做
* <p>
* email: renxuelongvip@163.com
*/
public class WebViewActivity extends SwipeBackActivity {
@BindView(R.id.img_back)
ImageView imgBack;
@BindView(R.id.tv_title)
TextView tvTitle;
@BindView(R.id.progressbar_webview)
ProgressBar mProgressBar;
@BindView(R.id.web_main)
WebView mWebView;
@BindView(R.id.activity_web_view)
LinearLayout activityWebView;
IX5WebChromeClient.CustomViewCallback callback;
@Override
protected int getLayoutId() {
return R.layout.activity_web_view;
}
@Override
protected void onInitView(Bundle bundle) {
getWindow().setFormat(PixelFormat.TRANSLUCENT);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Intent intent = getIntent();
// // TODO: 2016/11/26 常量问题
String url = intent.getStringExtra("web_url");
String title = intent.getStringExtra("web_title");
setTitle(title);
initView();
mWebView.loadUrl(url);
}
@Override
protected void onEvent() {
}
@Override
protected BaseView getView() {
return null;
}
private void initView() {
WebSettings webSetting = mWebView.getSettings();
webSetting.setAllowFileAccess(true);
webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
// webSetting.setSupportZoom(true);
// webSetting.setBuiltInZoomControls(true);
webSetting.setUseWideViewPort(true);
webSetting.setSupportMultipleWindows(false);
webSetting.setLoadWithOverviewMode(true);
webSetting.setAppCacheEnabled(true);
//webSetting.setDatabaseEnabled(true);
webSetting.setDomStorageEnabled(true);
webSetting.setJavaScriptEnabled(true);
webSetting.setGeolocationEnabled(true);
mWebView.setDrawingCacheEnabled(true);
webSetting.setAppCacheMaxSize(Long.MAX_VALUE);
webSetting.setAppCachePath(this.getDir("appcache", 0).getPath());
webSetting.setDatabasePath(this.getDir("databases", 0).getPath());
webSetting.setGeolocationDatabasePath(this.getDir("geolocation", 0)
.getPath());
webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
// webSetting.setPageCacheCapacity(IX5WebSettings.DEFAULT_CACHE_CAPACITY);
initWebView();
}
@SuppressLint("SetJavaScriptEnabled")
private void initWebView() {
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView webView, String s) {
webView.loadUrl(s);
return false;
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
/**
* 全屏播放配置
*/
@Override
public void onShowCustomView(View view, IX5WebChromeClient.CustomViewCallback customViewCallback) {
callback=customViewCallback;
}
@Override
public void onHideCustomView() {
if (callback != null) {
callback.onCustomViewHidden();
callback = null;
}
if (mWebView != null) {
ViewGroup viewGroup = (ViewGroup) mWebView.getParent();
viewGroup.removeView(mWebView);
}
}
@Override
public void onReceivedTitle(WebView arg0, final String arg1) {
super.onReceivedTitle(arg0, arg1);
tvTitle.setText(arg1);
}
@Override
public void onProgressChanged(WebView webView, int i) {
super.onProgressChanged(webView, i);
changeProgress(i);
}
});
}
private void changeProgress(int i) {
if (i >= 0 && i < 100) {
mProgressBar.setProgress(i);
mProgressBar.setVisibility(View.VISIBLE);
} else if (i == 100) {
mProgressBar.setProgress(100);
mProgressBar.setVisibility(View.GONE);
}
}
@Override
protected void onDestroy() {
if (mWebView != null)
mWebView.destroy();
super.onDestroy();
}
@OnClick(R.id.img_back)
public void back() {
finish();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}