From d0e49b8c045e09e96cc875b27033b4bfcf07438f Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 29 四月 2025 20:50:37 +0800
Subject: [PATCH] 2025年04月29日20:50:35

---
 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java |   61 +++++++++++++++++++++++-------
 1 files changed, 46 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
index 8f214c8..e4b9dd2 100644
--- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -1,15 +1,22 @@
 package com.hdl.photovoltaic.uni;
 
+import android.app.ActivityManager;
 import android.app.Application;
 import android.content.Context;
+import android.os.Build;
 import android.os.Environment;
+import android.os.Process;
 import android.text.TextUtils;
+import android.util.Log;
 
 
 import com.google.gson.Gson;
+import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
 import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.R;
 import com.hdl.photovoltaic.config.AppConfigManage;
+import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.other.HdlThreadLogic;
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
@@ -20,8 +27,10 @@
 
 import java.io.File;
 import java.util.HashMap;
+import java.util.List;
 
 import io.dcloud.common.DHInterface.ICallBack;
+import io.dcloud.common.util.RuningAcitvityUtil;
 import io.dcloud.feature.sdk.DCSDKInitConfig;
 import io.dcloud.feature.sdk.DCUniMPSDK;
 import io.dcloud.feature.sdk.Interface.IDCUniMPPreInitCallback;
@@ -34,6 +43,10 @@
 
 public class HDLUniMPSDKManager {
     private static final String TAG = "HDLUniMPSDKManager";
+    /**
+     * 鏍囪鐧诲綍鐣岄潰鏄惁宸茬粡瀛樺湪
+     */
+    public static boolean isExistsActivity = false;
     /**
      * context
      */
@@ -92,12 +105,14 @@
     private void removeCallBack() {
         DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(null);
         DCUniMPSDK.getInstance().setOnUniMPEventCallBack(null);
+
     }
 
     /**
      * 鐩戝惉鐩稿叧鍥炶皟
      */
     private void registerCallBack() {
+        DCUniMPSDK.getInstance();
         //1.璁剧疆灏忕▼搴忚鍏抽棴浜嬩欢鐩戝惉
         DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(new IUniMPOnCloseCallBack() {
             @Override
@@ -116,7 +131,8 @@
 
                 //灏忕▼搴忚鍏抽棴浜嗛�氱煡缁欏師鐢�
                 BaseEventBus baseEventBus = new BaseEventBus();
-                baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE);
+                baseEventBus.setTopic(HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE);
+                baseEventBus.setType(LowerTagType.power_station.toString());
                 EventBus.getDefault().post(baseEventBus);
 
             }
@@ -128,8 +144,11 @@
             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);
                 //鏆傛椂閫氳繃杩欎釜澶勭悊灏忕▼搴忓悓鏃跺鏉$浉鍚岀殑璇锋眰
                 if (data == null) {
+                    HdlLogLogic.print("鏀跺埌灏忕▼搴忛�氱煡,data鏁版嵁涓簄ull銆�", true);
                     return;
                 }
 //                String key= MD5Utils.getMd5(event+data.toString());
@@ -150,6 +169,14 @@
                     //闄や簡缁熶竴澶勭悊锛屽墿浣欏叾瀹冪壒瀹氬満鏅殑浜嬩欢閫氱煡
                     if (onOtherUniMPEventCallBack != null) {
                         onOtherUniMPEventCallBack.onOtherUniMPEventReceive(appid, event, data, callback);
+                    } else {
+                        if (!HDLUniMPSDKManager.isExistsActivity) {
+                            HDLUniMPSDKManager.isExistsActivity = true;
+                            HdlLogLogic.print("鏀跺埌灏忕▼搴忛�氱煡,鍥炶皟浜嬩欢涓簄ull,鏃犳硶鍥炶皟浜嬩欢骞舵墽琛屼笟鍔¢�昏緫---event=" + event + "\r\n" + "data=" + data, true);
+                            //鏈夊彲鑳芥槸绯荤粺鍥炴敹鎺塧ctivity瀵艰嚧鍥炶皟涓簄ull锛岃繖鏍锋儏鍐典笅寮哄埗杩斿洖鐧诲綍鐣岄潰锛�
+                            //todo 闀挎椂闂存病鍝嶅簲灏嗛��鍑虹櫥褰曠晫闈㈤噸鏂扮櫥褰�
+                            HDLLinkPMUser.getInstance().logout(0);
+                        }
                     }
                 }
             }
@@ -249,15 +276,6 @@
         return true;
     }
 
-    /**
-     * 鎵撳紑灏忕▼搴�
-     *
-     * @param uniAppId   灏忕▼搴廔D
-     * @param path       鎸囧畾璺緞
-     *                   渚嬶細pages/component/scroll-view/scroll-view?a=1&b=2&c=3
-     * @param jsonObject 闄勫姞鏁版嵁
-     * @param callBack   鐩戝惉灏忕▼搴廜therUniMPEvent浜嬩欢
-     */
     public void openUniMP(String uniAppId, String path, JSONObject jsonObject, IOnOtherUniMPEventCallBack callBack) {
         if (TextUtils.isEmpty(uniAppId)) {
             HdlThreadLogic.toast(mContext, "uni Id null");
@@ -273,14 +291,26 @@
                 UniMPOpenConfiguration uniMPOpenConfiguration = new UniMPOpenConfiguration();
                 uniMPOpenConfiguration.path = path;
                 uniMPOpenConfiguration.extraData = jsonObject;
+                if (UserConfigManage.getInstance().getUniBottomSafeDistanceBackgroundColor() == 0) {
+                    uniMPOpenConfiguration.splashClass = CSplashView.class;
+                } else {
+                    uniMPOpenConfiguration.splashClass = BSplashView.class;
+                }
                 uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId, uniMPOpenConfiguration);
             }
+//            //android14鏈変簺璁惧鏈夐棶棰橈紝闇�瑕佺瓑寰�
+//            if (android.os.Build.VERSION.SDK_INT >= 34) {
+//                if (TextUtils.isEmpty(mCurrentAppId)) {
+//                    //绗竴娆$敤瑕佷紤鐪�
+//                    SystemClock.sleep(1000);
+//                }
+//            }
             mCurrentAppId = uniAppId;//璁板綍褰撳墠灏忕▼搴�
             mUniMPCaches.put(uniMP.getAppid(), uniMP);
         } catch (Exception e) {
             e.printStackTrace();
             HdlThreadLogic.toast(HDLApp.getInstance(), R.string.uni_open_error);
-            initDCUniMPSDK(HDLApp.getInstance());
+//            initDCUniMPSDK(HDLApp.getInstance());
             HdlLogLogic.print("鎵撳紑澶辫触===" + e.getMessage());
         }
     }
@@ -352,12 +382,12 @@
         if (mUniMPCaches.containsKey(uniAppId)) {
             if (mUniMPCaches.get(uniAppId) != null) {
                 mUniMPCaches.get(uniAppId).sendUniMPEvent(topic, data);
-                HdlLogLogic.print("鍙戦�侀�氱煡鎴愬姛锛歟vent锛�" + topic + " data锛�" + new Gson().toJson(data));
+//                HdlLogLogic.print("Android---閫氱煡---uni---涓婚:" + topic + "---鍙戦�佹暟鎹�:" + new Gson().toJson(data));
             } else {
-                HdlLogLogic.print("鍙戦�佸け璐ワ紝灏忕▼搴忓璞′负绌猴細" + uniAppId);
+//                HdlLogLogic.print("Android---閫氱煡---uni---澶辫触---灏忕▼搴忓璞′负绌�:" + uniAppId);
             }
         } else {
-            HdlLogLogic.print("鍙戦�佸け璐ワ紝鎵句笉鍒板搴旂殑灏忕▼搴忥細" + uniAppId);
+//            HdlLogLogic.print("Android---閫氱煡---uni---澶辫触---卢灏忕▼搴忓璞′负绌�:" + uniAppId);
         }
 
     }
@@ -408,9 +438,10 @@
      * @param onOtherUniMPEventCallBack -
      */
     public void checkRemoveOtherUniMPEventCallBack(IOnOtherUniMPEventCallBack onOtherUniMPEventCallBack) {
+        HdlLogLogic.print("onOtherUniMPEventCallBack", true);
         if (this.onOtherUniMPEventCallBack == onOtherUniMPEventCallBack) {
             this.onOtherUniMPEventCallBack = null;
-            HdlLogLogic.print("onOtherUniMPEventCallBack remove callback");
+            HdlLogLogic.print("onOtherUniMPEventCallBack remove callback", true);
         }
     }
 

--
Gitblit v1.8.0