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) { } } }