This commit is contained in:
fengjignqi
2026-05-16 16:19:39 +08:00
commit 1b1575eb8a
1632 changed files with 242221 additions and 0 deletions

View File

@@ -0,0 +1,136 @@
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) {
}
}