mac
2024-03-26 c7c07eaa32ca7b137b1ac028d17beee0ebcf9a0b
app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -12,7 +12,9 @@
import com.hdl.photovoltaic.config.AppConfigManage;
import com.hdl.photovoltaic.other.HdlLogLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import org.greenrobot.eventbus.EventBus;
import org.json.JSONException;
import org.json.JSONObject;
@@ -90,12 +92,14 @@
    private void removeCallBack() {
        DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(null);
        DCUniMPSDK.getInstance().setOnUniMPEventCallBack(null);
    }
    /**
     * 监听相关回调
     */
    private void registerCallBack() {
        DCUniMPSDK.getInstance();
        //1.设置小程序被关闭事件监听
        DCUniMPSDK.getInstance().setUniMPOnCloseCallBack(new IUniMPOnCloseCallBack() {
            @Override
@@ -111,6 +115,12 @@
                if (appid.equals(mCurrentAppId)) {
                    mCurrentAppId = "";
                }
                //小程序被关闭了通知给原生
                BaseEventBus baseEventBus = new BaseEventBus();
                baseEventBus.setType(HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE);
                EventBus.getDefault().post(baseEventBus);
            }
        });
@@ -122,6 +132,8 @@
                HdlLogLogic.print("收到小程序通知    event=" + event);
                //暂时通过这个处理小程序同时多条相同的请求
                if (data == null) {
                    HdlLogLogic.print("收到小程序通知,data数据为null。", true);
                    return;
                }
//                String key= MD5Utils.getMd5(event+data.toString());
@@ -137,11 +149,13 @@
                    //回传数据给小程序
                    JSONObject params = getAppParams();
                    callback.invoke(params);
                    HdlLogLogic.print( "uni_GetAppParams callback:" + params.toString());
                    HdlLogLogic.print("uni_GetAppParams callback:" + params.toString());
                } else {
                    //除了统一处理,剩余其它特定场景的事件通知
                    if (onOtherUniMPEventCallBack != null) {
                        onOtherUniMPEventCallBack.onOtherUniMPEventReceive(appid, event, data, callback);
                    } else {
                        HdlLogLogic.print("收到小程序通知,回调事件为null,无法回调事件并执行业务逻辑--->event=" + event + "\r\n" + "data=" + data, true);
                    }
                }
            }
@@ -218,7 +232,7 @@
                }
            });
        } else {
            HdlLogLogic.print( "wgt包本地不存在");
            HdlLogLogic.print("wgt包本地不存在");
        }
    }
@@ -253,7 +267,7 @@
    public void openUniMP(String uniAppId, String path, JSONObject jsonObject, IOnOtherUniMPEventCallBack callBack) {
        if (TextUtils.isEmpty(uniAppId)) {
            HdlThreadLogic.toast(mContext, "uni Id null");
            HdlLogLogic.print( "小程序ID 不能为空");
            HdlLogLogic.print("小程序ID 不能为空");
            return;
        }
        try {
@@ -327,7 +341,7 @@
            mUniMPCaches.put(uniMP.getAppid(), uniMP);
        } catch (Exception e) {
            e.printStackTrace();
            HdlLogLogic.print( "打开失败===" + e.getMessage());
            HdlLogLogic.print("打开失败===" + e.getMessage());
        }
    }
@@ -336,20 +350,20 @@
     * 注意:需要提前小程序在运行才可成功
     *
     * @param uniAppId 小程序指定
     * @param event    小程序指定主题
     * @param topic    小程序指定主题
     * @param data     String或JSON
     */
    public void sendUniMPEvent(String uniAppId, String event, Object data) {
    public void sendUniMPEvent(String uniAppId, String topic, Object data) {
        if (mUniMPCaches.containsKey(uniAppId)) {
            if (mUniMPCaches.get(uniAppId) != null) {
                mUniMPCaches.get(uniAppId).sendUniMPEvent(event, data);
                HdlLogLogic.print("发送通知成功:event:" + event + " data:" + new Gson().toJson(data));
                mUniMPCaches.get(uniAppId).sendUniMPEvent(topic, 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);
        }
    }