Files
expert-app/app/src/main/java/cn/shangyu/gdxzExpert/activity/AdvertActivity.java
T
2025-11-18 15:12:24 +08:00

363 lines
12 KiB
Java

package cn.shangyu.gdxzExpert.activity;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.graphics.Bitmap;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.webkit.WebSettings;
import android.webkit.WebSettings.LayoutAlgorithm;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.RelativeLayout;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import com.gyf.immersionbar.ImmersionBar;
import cn.shangyu.gdxzExpert.R;
public class AdvertActivity extends AppCompatActivity implements OnClickListener {
private WebView wv_advert;
// private View view;
private RelativeLayout fl_advert;
private MyWebChromeClient mMyWebChromeClient;
private View xCustomView;
private CustomViewCallback xCustomViewCallback;
// private myWebChromeClient xwebchromeclient;
private String ganyuanweini = "http://ylxb.igandan.com/bmspatient/toindex";
private String twoduiban = "http://www.igandan.com/ygzd/index.html";
private String bingganzhenduan = "http://www.igandan.com/bgzd/index.html";
private String gdys = "http://wx.igandan.com/video/videoLisByType?share=1&typeUuid=f3d1b0de3cb44d18977f06e714032913&page=1";
private String mWebTitle = "";
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_advert);
Toolbar mToolbar=findViewById(R.id.toolbar);
ImmersionBar.with(this).keyboardEnable(true).statusBarDarkFont(true).titleBar(mToolbar).init();
// view = UIUtils.inflate(R.layout.activity_advert);
wv_advert = (WebView) findViewById(R.id.wv_advert);
fl_advert = findViewById(R.id.fl_advert);
String url = getIntent().getStringExtra("patientmoocurlStr");
// wv_quest_detaiil.loadUrl(url)
WebSettings settings = wv_advert.getSettings();
// 设置 缓存模式
settings.setCacheMode(WebSettings.LOAD_DEFAULT);
// settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// 开启 DOM storage API 功能
settings.setDomStorageEnabled(true);
// 开启 database storage API 功能
settings.setDatabaseEnabled(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);// 设置此属性,可任意比例缩放
settings.setJavaScriptEnabled(true);// 启用javascript脚本
settings.setJavaScriptCanOpenWindowsAutomatically(true);// 支持通过JS打开新窗口
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);
mMyWebChromeClient = new MyWebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
// TODO Auto-generated method stub
super.onReceivedTitle(view, title);
mWebTitle = title;
}
};
wv_advert.setWebChromeClient(mMyWebChromeClient);
// xwebchromeclient = new myWebChromeClient();
// wv_advert.setWebChromeClient(xwebchromeclient);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
wv_advert.getSettings().setMixedContentMode(
WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
wv_advert.setWebViewClient(new MyWebViewClient());
// wv_advert.setWebViewClient(new WebViewClient() {
// @Override
// public boolean shouldOverrideUrlLoading(WebView view, String url) {
// // TODO Auto-generated method stub
// view.loadUrl(url);
// return true;
// }
// });
wv_advert.loadUrl(url);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// AGP 8.0+ R.id 不再是 final 常量,不能用于 switch,改用 if-else
int id = v.getId();
if (id == R.id.top_back_layout) {
finish();
}
}
private String shareTitle, shareUrl, shareContent;
// public void UMengShare() {
// // ToastUtil.showMessage(mWebTitle);
// // newsTitle = getIntent().getStringExtra("newsTitle");// 新闻的标题
// // summary = getIntent().getStringExtra("summary");// 新闻的摘要
// if (getIntent().getStringExtra("type").equals("gbjc")) {
// shareTitle = mWebTitle;
//
// shareContent = "首医肝病转化医学研究所|肝胆相照平台联合肝病检测";
// } else if(getIntent().getStringExtra("patientmoocurlStr").equals(
// ganyuanweini) ){
// shareTitle = "一路陪伴,肝愿为你";
// shareContent = "肝胆相照®带您了解乙肝";
// }else if( getIntent().getStringExtra("patientmoocurlStr").equals(
// twoduiban)){
// shareTitle = "乙肝五项检查报告在线解读";
// shareContent = "肝胆相照®肝胆病在线公共服务平台";
// }else if( getIntent().getStringExtra("patientmoocurlStr").equals(
// bingganzhenduan)){
// shareTitle = "丙肝检查报告在线解读";
// shareContent = "肝胆相照®肝胆病在线公共服务平台";
// }else if(getIntent().getStringExtra("patientmoocurlStr").equals(
// gdys)){
// shareTitle = "肝胆科普视频,你想了解学习的都在这里";
// shareContent = "肝胆相照®肝胆病在线公共服务平台";
//
// }else{
// shareTitle = "谈丙话肝";
// shareContent = "肝胆相照®带您了解丙肝";
// }
// shareUrl = getIntent().getStringExtra("patientmoocurlStr");
// UMImage shareImg;
//
// shareImg = new UMImage(AdvertActivity.this,
// "http://doc.igandan.com/app/html/img/2016/20160714132557.png");
//
// UMWeb web = new UMWeb(shareUrl);
// web.setTitle(shareTitle);// 标题
// web.setThumb(shareImg); // 缩略图
// web.setDescription(shareContent);// 描述
// new ShareAction(AdvertActivity.this)
// .withMedia(web)
// .setDisplayList(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,
// SHARE_MEDIA.SINA).setCallback(new UMShareListener() {
//
// @Override
// public void onStart(SHARE_MEDIA arg0) {
// // TODO Auto-generated method stub
// switch (arg0) {
// case WEIXIN_CIRCLE:
// if (getIntent().getStringExtra("type").equals("tbhg")|| getIntent().getStringExtra("patientmoocurlStr").equals("http://wx.igandan.com/bing/index?share=1")
// || getIntent()
// .getStringExtra("patientmoocurlStr")
// .equals("http://gdwx.dsz360.com/bing/index?share=1")) {
// shareTitle = "谈丙话肝,肝胆相照®带您了解丙肝";
// } else if(getIntent().getStringExtra("patientmoocurlStr").equals(
// ganyuanweini) ){
// shareTitle = "一路陪伴,肝愿为你,肝胆相照®带您了解乙肝";
//
// }else if( getIntent().getStringExtra("patientmoocurlStr").equals(
// twoduiban)){
// shareTitle = "乙肝五项检查报告在线解读,肝胆相照®肝胆病在线公共服务平台";
//
// }else if( getIntent().getStringExtra("patientmoocurlStr").equals(
// bingganzhenduan)){
// shareTitle = "丙肝检查报告在线解读,肝胆相照®肝胆病在线公共服务平台";
//
// }else if(getIntent().getStringExtra("patientmoocurlStr").equals(
// gdys)){
// shareTitle = "肝胆科普视频,你想了解学习的都在这里,肝胆相照®肝胆病在线公共服务平台";
// }
//
// break;
//
// default:
// break;
// }
// }
//
// @Override
// public void onResult(SHARE_MEDIA arg0) {
// // TODO Auto-generated method stub
// Toast.makeText(AdvertActivity.this, "分享成功",
// Toast.LENGTH_LONG).show();
// }
//
// @Override
// public void onError(SHARE_MEDIA arg0, Throwable arg1) {
// // TODO Auto-generated method stub
// Toast.makeText(AdvertActivity.this,
// "分享失败" + arg1.getMessage(), Toast.LENGTH_LONG)
// .show();
// }
//
// @Override
// public void onCancel(SHARE_MEDIA arg0) {
// // TODO Auto-generated method stub
// Toast.makeText(AdvertActivity.this, "分享取消",
// Toast.LENGTH_LONG).show();
// }
// }).open();
// }
// 适配全屏播放
private class MyWebChromeClient extends WebChromeClient {
private View mCustomView;
private CustomViewCallback mCustomViewCallback;
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
if (mCustomView != null) {
callback.onCustomViewHidden();
return;
}
mCustomView = view;
fl_advert.addView(mCustomView);
mCustomViewCallback = callback;
// layout_top.setVisibility(View.GONE);
wv_advert.setVisibility(View.GONE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
public void onHideCustomView() {
wv_advert.setVisibility(View.VISIBLE);
if (mCustomView == null) {
return;
}
mCustomView.setVisibility(View.GONE);
fl_advert.removeView(mCustomView);
// layout_top.setVisibility(View.VISIBLE);
mCustomViewCallback.onCustomViewHidden();
mCustomView = null;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
final WindowManager.LayoutParams attrs = getWindow()
.getAttributes();
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setAttributes(attrs);
getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
super.onHideCustomView();
}
}
@Override
public void onConfigurationChanged(Configuration config) {
super.onConfigurationChanged(config);
switch (config.orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
getWindow().clearFlags(
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
break;
case Configuration.ORIENTATION_PORTRAIT:
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
break;
}
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onBackPressed() {
if (wv_advert.canGoBack()) {
wv_advert.goBack();
return;
}
super.onBackPressed();
}
@Override
public void onDestroy() {
super.onDestroy();
wv_advert.destroy();
}
/**
* 设置全屏
*/
private void setFullScreen() {
// 设置全屏的相关属性,获取当前的屏幕状态,然后设置全屏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 全屏下的状态码:1098974464
// 窗口下的状态吗:1098973440
}
/**
* 退出全屏
*/
private void quitFullScreen() {
// 声明当前屏幕状态的参数并获取
final WindowManager.LayoutParams attrs = getWindow().getAttributes();
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setAttributes(attrs);
getWindow()
.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
public class MyWebViewClient extends WebViewClient {
// private ProgressDialog loadingBar;
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// loadingView.setVisibility(View.VISIBLE);
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url); // webview里面的链接还在同一个页面中加载
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
}
}
}