wjc
2025-05-23 971a24a9e58a21bc306897fd3ad63012a399f7db
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -1,5 +1,6 @@
package com.hdl.photovoltaic.uni;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import android.os.Build;
@@ -26,6 +27,7 @@
import java.io.File;
import java.util.HashMap;
import java.util.List;
import io.dcloud.common.DHInterface.ICallBack;
import io.dcloud.common.util.RuningAcitvityUtil;
@@ -41,6 +43,10 @@
public class HDLUniMPSDKManager {
    private static final String TAG = "HDLUniMPSDKManager";
    /**
     * 标记登录界面是否已经存在
     */
    public static boolean isExistsActivity = false;
    /**
     * context
     */
@@ -111,9 +117,10 @@
        DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(new IUniMPOnCloseCallBack() {
            @Override
            public void onClose(String appid) {
                if (AppConfigManage.isDebug()) {
                    HdlLogLogic.print("收到小程序通知  被关闭了");
                }
//                if (AppConfigManage.isDebug()) {
//                    HdlLogLogic.print("收到小程序通知  被关闭了");
//                }
                HdlLogLogic.print("收到小程序通知  被关闭了", true);
                //小程序被关闭需要对实例缓存删除操作
                if (mUniMPCaches.containsKey(appid)) {
                    mUniMPCaches.remove(appid);
@@ -138,8 +145,8 @@
            public void onUniMPEventReceive(String appid, String event, Object data, DCUniMPJSCallback callback) {
//                handelUniMPEventReceive(appid, event, data, callback);
                HdlLogLogic.print("收到小程序通知    event=" + event);
                String processMessage=Process.myPid()+" ";
                HdlLogLogic.print("进程信息:" + processMessage);
//                String processMessage = Process.myPid() + " ";
//                HdlLogLogic.print("进程信息:" + processMessage);
                //暂时通过这个处理小程序同时多条相同的请求
                if (data == null) {
                    HdlLogLogic.print("收到小程序通知,data数据为null。", true);
@@ -164,11 +171,13 @@
                    if (onOtherUniMPEventCallBack != null) {
                        onOtherUniMPEventCallBack.onOtherUniMPEventReceive(appid, event, data, callback);
                    } else {
                        HdlLogLogic.print("收到小程序通知,回调事件为null,无法回调事件并执行业务逻辑---event=" + event + "\r\n" + "data=" + data, true);
                        //有可能是系统回收掉activity导致回调为null,这样情况下强制返回登录界面;
                        //todo 长时间没响应将退出登录界面重新登录
                        HdlLogLogic.print("回调事件为null退出登录---", true);
                        HDLLinkPMUser.getInstance().logout(0);
                        if (!HDLUniMPSDKManager.isExistsActivity) {
                            HDLUniMPSDKManager.isExistsActivity = true;
                            HdlLogLogic.print("收到小程序通知,回调事件为null,无法回调事件并执行业务逻辑---event=" + event + "\r\n" + "data=" + data, true);
                            //有可能是系统回收掉activity导致回调为null,这样情况下强制返回登录界面;
                            //todo 长时间没响应将退出登录界面重新登录
                            HDLLinkPMUser.getInstance().logout(0);
                        }
                    }
                }
            }
@@ -311,6 +320,7 @@
     * 初始化UniMPSDK 小程序SDK
     */
    public void initDCUniMPSDK(Context mContext) {
        HdlLogLogic.print("UniMPSDK状态---" + DCUniMPSDK.getInstance().isInitialize(), true);
        if (DCUniMPSDK.getInstance().isInitialize()) {
            return;
        }