From 34a18e852c1e3b5da43da02e6bdeab6b28a1fdd2 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 04 二月 2021 19:35:04 +0800 Subject: [PATCH] PPTV与个人信息页面绑定完成 --- BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java | 176 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 134 insertions(+), 42 deletions(-) diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java index 6fe91bf..2625d5c 100644 --- a/BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java +++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java @@ -6,6 +6,9 @@ import android.app.Notification; import android.app.NotificationManager; import android.content.Intent; +import android.content.pm.ActivityInfo; +import android.content.res.Configuration; +import android.net.http.SslError; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; @@ -15,19 +18,21 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.view.WindowManager; +import android.webkit.ConsoleMessage; +import android.webkit.SslErrorHandler; +import android.webkit.WebChromeClient; +import android.webkit.WebResourceRequest; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; import android.widget.FrameLayout; +import android.widget.LinearLayout; import android.widget.ProgressBar; import android.widget.TextView; import com.lcjian.library.RetainViewFragment; -import com.tencent.smtt.export.external.interfaces.ConsoleMessage; -import com.tencent.smtt.export.external.interfaces.SslError; -import com.tencent.smtt.export.external.interfaces.SslErrorHandler; -import com.tencent.smtt.export.external.interfaces.WebResourceRequest; -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 com.tencent.smtt.export.external.interfaces.IX5WebChromeClient; import com.umeng.analytics.MobclickAgent; import com.weikou.beibeivideo.BeibeiVideoApplication; import com.weikou.beibeivideo.R; @@ -37,23 +42,27 @@ import com.weikou.beibeivideo.ui.login.LoginActivity; import com.weikou.beibeivideo.util.BeibeiConstant; import com.weikou.beibeivideo.util.ConfigUtil; +import com.weikou.beibeivideo.util.UserUtil; import com.weikou.beibeivideo.util.ad.AdUtil; import com.weikou.beibeivideo.util.browser.PPJavaInterface; import com.weikou.beibeivideo.util.ui.IPageEventListener; -import com.weikou.beibeivideo.util.x5.X5WebView; public class PPTVPlayFragment extends RetainViewFragment implements OnClickListener { - private static int REQUEST_CODE_LOGIN = 1001; + private final static int REQUEST_CODE_LOGIN = 1001; + + private final static int REQUEST_CODE_VIP = 1002; private final static String TAG = PPTVPlayFragment.class.getSimpleName(); private TextView tv_top_bar_left; - private X5WebView webview; + private android.webkit.WebView webview; FrameLayout fl_ad; + FrameLayout fl_container; + private boolean showAd = true; - private void initX5WebView(View view) { + private void initWebView(View view) { fl_ad = view.findViewById(R.id.fl_ad); webview = view.findViewById(R.id.webview); webview.setWebViewClient(new WebViewClient() { @@ -73,7 +82,12 @@ @Override public void onPageFinished(WebView webView, String s) { super.onPageFinished(webView, s); - playAd(); + if (showAd) + playAd(); + else { + showAd = true; + adPlayFinish(); + } } @Override @@ -82,6 +96,10 @@ }); webview.setWebChromeClient(new WebChromeClient() { + + View myVideoView; + View myNormalView; + CustomViewCallback callback; @Override public void onReceivedTitle(WebView view, String title) { @@ -97,6 +115,42 @@ Log.i(TAG, consoleMessage.message()); return super.onConsoleMessage(consoleMessage); } + + /** + * 鍏ㄥ睆鎾斁閰嶇疆 + */ + @Override + public void onShowCustomView(View view, + CustomViewCallback customViewCallback) { + View normalView = fl_container; + ViewGroup viewGroup = (ViewGroup) normalView.getParent(); + viewGroup.removeView(normalView); + viewGroup.addView(view); + myVideoView = view; + myNormalView = normalView; + callback = customViewCallback; + getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + WindowManager.LayoutParams attrs = getActivity().getWindow().getAttributes(); + attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; + getActivity().getWindow().setAttributes(attrs); + } + + @Override + public void onHideCustomView() { + if (callback != null) { + callback.onCustomViewHidden(); + callback = null; + } + if (myVideoView != null) { + ViewGroup viewGroup = (ViewGroup) myVideoView.getParent(); + viewGroup.removeView(myVideoView); + viewGroup.addView(myNormalView); + } + getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + WindowManager.LayoutParams attrs = getActivity().getWindow().getAttributes(); + attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; + getActivity().getWindow().setAttributes(attrs); + } }); WebSettings webSetting = webview.getSettings(); webSetting.setJavaScriptEnabled(true); @@ -104,37 +158,40 @@ webview.addJavascriptInterface(new PPJavaInterface(BeibeiVideoApplication.application, new PPJavaInterface.IEventListener() { @Override public void onLogin() { - webview.post(new Runnable() { - @Override - public void run() { - Intent intent = new Intent(getContext(), LoginActivity.class); - intent.putExtra("result", true); - startActivityForResult(intent, REQUEST_CODE_LOGIN); - } - }); + if (getActivity() != null) + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + Intent intent = new Intent(getContext(), LoginActivity.class); + intent.putExtra("result", true); + startActivityForResult(intent, REQUEST_CODE_LOGIN); + } + }); } @Override public void onTryPlayFinish() { Log.i(TAG, "onTryPlayFinish"); - webview.post(new Runnable() { - @Override - public void run() { - if (vipDialog != null && !vipDialog.isShowing()) - vipDialog.show(); - } - }); + if (getActivity() != null) + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + if (vipDialog != null && !vipDialog.isShowing()) + vipDialog.show(); + } + }); } @Override public void onPlayFinish() { - webview.post(new Runnable() { - @Override - public void run() { - new AlertDialog.Builder(getContext()).setMessage("playFinish鏂规硶琚皟鐢�").create().show(); - } - }); + if (getActivity() != null) + getActivity().runOnUiThread(new Runnable() { + @Override + public void run() { + } + }); } }), "ppyestv"); @@ -154,15 +211,17 @@ @Override public void onCreateView(View contentView, Bundle savedInstanceState) { initView(contentView); - String url = "http://vip.pptv.com/activity/2021/pg_bwysdqmovie?cid=32159127&vid=32159127&programtype=3"; + String url = "http://vip.pptv.com/activity/2021/pg_bwysdqmovie?cid=32159127&vid=32159127&programtype=2"; url = "https://acmd.api.pptv.com/2021/bwysdqmovie_thrid_h5.html?cid=32159127&vid=32159127&programtype=3"; webview.loadUrl(url); } + private void initView(View view) { - initX5WebView(view); + initWebView(view); tv_top_bar_left = view.findViewById(R.id.tv_top_bar_left); tv_top_bar_left.setOnClickListener(this); + fl_container = view.findViewById(R.id.fl_container); vipDialog = new VIPDialog.Builder(getActivity()).setCloseListener(new OnClickListener() { @Override public void onClick(View v) { @@ -172,9 +231,19 @@ @Override public void onClick(View v) { vipDialog.dismiss(); - startActivity(new Intent(BeibeiVideoApplication.application, BrowserActivity.class).putExtra("url", ConfigUtil.getVipLink(BeibeiVideoApplication.application))); + startActivityForResult(new Intent(BeibeiVideoApplication.application, BrowserActivity.class).putExtra("url", ConfigUtil.getVipLink(BeibeiVideoApplication.application)), REQUEST_CODE_VIP); } }).create(); + + //娴嬭瘯 +// fl_container.postDelayed(new Runnable() { +// @Override +// public void run() { +// getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); +// if (!vipDialog.isShowing()) +// vipDialog.show(); +// } +// }, 10000); } Dialog vipDialog; @@ -245,13 +314,33 @@ Log.d(TAG, "onActivityResdult:" + requestCode); //浠庣櫥褰曡繑鍥炴潵鐨� if (requestCode == REQUEST_CODE_LOGIN && resultCode == Activity.RESULT_OK) { - Log.d(TAG, "鐧诲綍鎴愬姛"); - webview.reload(); + + switch (requestCode) { + case REQUEST_CODE_VIP: + + break; + + case REQUEST_CODE_LOGIN: { + Log.d(TAG, "鐧诲綍鎴愬姛"); + showAd = false; + webview.reload(); + } + break; + + } + + } super.onActivityResult(requestCode, resultCode, data); } private synchronized void playAd() { + //VIP姘镐箙鍏嶅箍鍛� + if (UserUtil.isVIP(getContext())) { + adPlayFinish(); + return; + } + fl_ad.setVisibility(View.VISIBLE); mVideoDetailVideoAdFragment = new PlayVideoPreADFragment(); mVideoDetailVideoAdFragment.setPageEventListener(new IPageEventListener() { @@ -260,7 +349,8 @@ mVideoDetailVideoAdFragment.loadVideoAD(new PlayVideoPreADFragment.IVideoAdListener() { @Override public void finishPlay() { - getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss(); + if (mVideoDetailVideoAdFragment.isAdded()) + getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss(); fl_ad.setVisibility(View.GONE); adPlayFinish(); } @@ -273,7 +363,8 @@ @Override public void noAd() { fl_ad.setVisibility(View.GONE); - getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss(); + if (mVideoDetailVideoAdFragment.isAdded()) + getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss(); adPlayFinish(); } }, new PlayVideoPreADSetting(AdUtil.AD_TYPE.gdt, BeibeiConstant.GDT_ID, "5061928359494942", null)); @@ -285,6 +376,7 @@ private void adPlayFinish() { - webview.loadUrl("javascript:adPlayFinish()"); + if (webview != null) + webview.loadUrl("javascript:adPlayFinish()"); } } -- Gitblit v1.8.0