管灌系统巡查员智能手机App
app/src/main/java/com/dayu/pipirrapp/utils/WebViewUtils.java
@@ -1,21 +1,33 @@
package com.dayu.pipirrapp.utils;
import android.util.Log;
import android.view.View;
import android.webkit.ConsoleMessage;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import com.dayu.pipirrapp.bean.db.MarkerBean;
import java.util.List;
/**
 * author: zuo
 * Date: 2024-09-03
 * Time: 15:43
 * 备注:
 * 备注:web相关的公共方法
 */
public class WebViewUtils {
    private static String TAG = "WebViewUtils";
    /**
     * 初始化web设置
     *
     * @param mWebView
     * @return
     */
    public static WebView initWebView(WebView mWebView) {
//        getActivity().getWindow().setFlags(
@@ -36,9 +48,16 @@
        mWebView.clearCache(false); // 清除缓存
//        mWebView.clearHistory(); // 清除历史
//        mWebView.clearFormData(); // 清除表单数据
        webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);// 设置缓存模式
        webSettings.setDatabaseEnabled(true);
        webSettings.setDomStorageEnabled(true);//开启DOM缓存,关闭的话H5自身的一些操作是无效的
        //启用 Service Workers
        WebView.enableSlowWholeDocumentDraw();
        WebView.setWebContentsDebuggingEnabled(true);
        // 启用硬件加速
        mWebView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
// 缓存模式
//        LOAD_DEFAULT: 默认,根据 cache-control 决定是否从网络上取数据
//        LOAD_NORMAL: API level 17 中已经废弃, 从API level 11开始作用同 LOAD_DEFAULT 模式
@@ -69,6 +88,7 @@
            public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
                return super.onJsAlert(view, url, message, result);
            }
            @Override
            public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
                Log.d("WebView", consoleMessage.message()
@@ -82,4 +102,42 @@
        return mWebView;
    }
    /**
     * bean转json
     *
     * @param markerBeans
     */
    public static String beanToJson(List<MarkerBean> markerBeans) {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("[");
        for (int i = 0; i < markerBeans.size(); i++) {
            MarkerBean markerBean = markerBeans.get(i);
            stringBuilder.append("[");
            stringBuilder.append(markerBean.getLng());
            stringBuilder.append(",");
            stringBuilder.append(markerBean.getLat());
            stringBuilder.append(",\"" + markerBean.getName() + "\"]");
            if (i != markerBeans.size() - 1) {
                stringBuilder.append(",");
            }
        }
        stringBuilder.append("]");
        return stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\"");
    }
    /**
     * bean转json
     *
     * @param stringBuilder
     * @param markerBean
     */
    public static String markerBeanToJson(StringBuilder stringBuilder, MarkerBean markerBean) {
        stringBuilder.append("{");
        stringBuilder.append(markerBean.getLng());
        stringBuilder.append(",");
        stringBuilder.append(markerBean.getLat());
        stringBuilder.append(",\"" + markerBean.getName() + "\"}");
        return stringBuilder.toString().replace("\\", "\\\\").replace("\"", "\\\"");
    }
}