Files
Android-WaterProject/app/src/main/java/com/ckkj/water/mine/WebviewUserAgreement.java
fengjignqi 1b1575eb8a first
2026-05-16 16:19:39 +08:00

137 lines
4.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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) {
}
}