137 lines
4.7 KiB
Java
137 lines
4.7 KiB
Java
package com.ckkj.water.mine;
|
||
|
||
import android.net.http.SslError;
|
||
import android.os.Build;
|
||
import android.os.Bundle;
|
||
import android.view.View;
|
||
import android.webkit.JavascriptInterface;
|
||
import android.webkit.SslErrorHandler;
|
||
import android.webkit.WebSettings;
|
||
import android.webkit.WebView;
|
||
import android.webkit.WebViewClient;
|
||
|
||
import com.gyf.immersionbar.ImmersionBar;
|
||
import com.ckkj.water.AppConfig;
|
||
import com.ckkj.water.R;
|
||
import com.ckkj.water.base.BaseActivityNoP;
|
||
import com.ckkj.water.databinding.ActivitySerivceWebLayoutBinding;
|
||
import com.ckkj.water.network.BaseBean;
|
||
|
||
/**
|
||
* @author fengxiaoyang
|
||
* @date 2025/5/13
|
||
* @description TODO: 描述该类的作用
|
||
*/
|
||
|
||
public class WebviewUserAgreement extends BaseActivityNoP<ActivitySerivceWebLayoutBinding> {
|
||
|
||
public static final int AGREEMENT_CODE = 10001;
|
||
public static final int PRIVACY_CODE = 10002;
|
||
private int mFromRequest = -1;
|
||
@Override
|
||
public int getLayoutResId(Bundle savedInstanceState) {
|
||
return 0;
|
||
}
|
||
|
||
@Override
|
||
public void initData(Bundle savedInstanceState) {
|
||
super.initData(savedInstanceState);
|
||
ImmersionBar.with(this)
|
||
.statusBarColor(R.color.white) // 设置状态栏颜色
|
||
.statusBarDarkFont(true) // 设置状态栏字体为黑色
|
||
.titleBar(viewBinding.rlTitle)
|
||
.init();
|
||
Bundle bundle = getIntent().getExtras();
|
||
mFromRequest = bundle.getInt("from_requse_code");
|
||
viewBinding.mWvJieyou.setVisibility(View.VISIBLE);
|
||
String fileUrl = "";
|
||
//登录状态下,拼接token/userid/头像等参数进入聊天
|
||
if(mFromRequest == AGREEMENT_CODE){
|
||
viewBinding.includeTitle.tvTitle.setText("用户协议");
|
||
fileUrl = AppConfig.USER_AGREEMENT;
|
||
}else if(mFromRequest == PRIVACY_CODE){
|
||
viewBinding.includeTitle.tvTitle.setText("隐私政策");
|
||
fileUrl = AppConfig.USER_PRIVACY;
|
||
}
|
||
viewBinding.mWvJieyou.addJavascriptInterface(new JsInterface(), "Android");
|
||
viewBinding.mWvJieyou.getSettings().setJavaScriptEnabled(true);
|
||
viewBinding.mWvJieyou.getSettings().setUseWideViewPort(true);
|
||
viewBinding.mWvJieyou.getSettings().setLoadWithOverviewMode(true);
|
||
viewBinding.mWvJieyou.setHapticFeedbackEnabled(false);
|
||
viewBinding.mWvJieyou.getSettings().setSupportZoom(true);
|
||
viewBinding.mWvJieyou.getSettings().setAllowUniversalAccessFromFileURLs(true);
|
||
viewBinding.mWvJieyou.getSettings().setDomStorageEnabled(true);
|
||
|
||
viewBinding.mWvJieyou.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
||
// 设置允许JS弹窗
|
||
viewBinding.mWvJieyou.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
|
||
showLoadingDialog();
|
||
viewBinding.mWvJieyou.setWebViewClient(new AppWebViewClients());
|
||
// viewBinding.mWvJieyou.setWebChromeClient(new MyWebChromeClient());
|
||
viewBinding.mWvJieyou.loadUrl(fileUrl);//确保跳转到另一个网页时仍然在当前WebView显示
|
||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||
viewBinding.mWvJieyou.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
||
}
|
||
viewBinding.mWvJieyou.setLayerType(WebView.LAYER_TYPE_HARDWARE, null);
|
||
|
||
viewBinding.includeTitle.imgBack.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View v) {
|
||
//调用H5中的closeWs函数,结束当前会话
|
||
}
|
||
});
|
||
viewBinding.includeTitle.imgBack.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View v) {
|
||
finish();
|
||
}
|
||
});
|
||
}
|
||
|
||
public class JsInterface {
|
||
/**
|
||
* 关闭页面
|
||
*/
|
||
@JavascriptInterface
|
||
public void finishActivity() {
|
||
finish();
|
||
}
|
||
/**
|
||
* 关闭页面
|
||
*/
|
||
@JavascriptInterface
|
||
public void send(String msg) {
|
||
}
|
||
}
|
||
|
||
public class AppWebViewClients extends WebViewClient {
|
||
@Override
|
||
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
||
view.loadUrl(url);
|
||
return true;
|
||
}
|
||
@Override
|
||
public void onPageFinished(WebView view, String url) {
|
||
// // html加载完成之后,隐藏进度条
|
||
hideDialogLoading();
|
||
super.onPageFinished(view, url);
|
||
}
|
||
|
||
@Override
|
||
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
|
||
handler.proceed();
|
||
}
|
||
}
|
||
|
||
|
||
@Override
|
||
public void showError(String message) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void logOut(BaseBean bean) {
|
||
|
||
}
|
||
}
|