package com.hdl.photovoltaic.other;
|
|
|
import com.hdl.photovoltaic.config.UserConfigManage;
|
import com.hdl.photovoltaic.uni.HDLUniMP;
|
import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
|
|
import org.json.JSONObject;
|
|
|
import io.dcloud.feature.unimp.DCUniMPJSCallback;
|
|
/**
|
* uni小程序的逻辑
|
*/
|
public class HdlUniLogic implements HDLUniMPSDKManager.IOnOtherUniMPEventCallBack {
|
private static volatile HdlUniLogic sHdlUniLogic;
|
|
/**
|
* 获取当前对象
|
*
|
* @return HdlAccountLogic
|
*/
|
public static synchronized HdlUniLogic getInstance() {
|
if (sHdlUniLogic == null) {
|
synchronized (HdlUniLogic.class) {
|
if (sHdlUniLogic == null) {
|
sHdlUniLogic = new HdlUniLogic();
|
}
|
}
|
|
}
|
return sHdlUniLogic;
|
}
|
|
/**
|
* 原生接收uni发来的数据
|
*
|
* @param appId -uni小程序指定的appId
|
* @param event -uni小程序发来数据
|
* @param data JSONObject com.alibaba.fastjson解析处理
|
* @param callback callback.invoke(JSONObject) 用com.alibaba.fastjson
|
*/
|
@Override
|
public void onOtherUniMPEventReceive(String appId, String event, Object data, DCUniMPJSCallback callback) {
|
if (!HDLUniMP.UNI_APP_ID.equals(appId)) {
|
return;
|
}
|
try {
|
org.json.JSONObject jsonObject = null;
|
if (data != null) {
|
jsonObject = new org.json.JSONObject(data.toString());
|
}
|
if (HDLUniMP.UNI_EVENT_HOME_CREATION.equals(event)) {
|
if (callback != null) {
|
callback.invoke(null);
|
}
|
}
|
HdlLogLogic.print("uni===原生接收uni发来的数据", event + "\r\n" + data);
|
} catch (Exception e) {
|
HdlLogLogic.print("uni===原生接收uni发来的数据", e.getMessage());
|
}
|
|
}
|
|
/**
|
* 原生打开uni指定页面
|
*
|
* @param path 打开路径
|
* @param jsonObject 附件数据(没有数据填null)
|
*/
|
public void openUniMP(String path, JSONObject jsonObject) {
|
JSONObject json = this.createdJsonDate(jsonObject);
|
HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this);
|
}
|
|
/**
|
* 原生【主动】向小程序发送通知事件
|
* 注意:需要提前小程序在运行才可成功
|
*
|
* @param topic 主题
|
* @param body 附件数据(没有数据填null)
|
*/
|
public void sendUni(String topic, String body) {
|
try {
|
HDLUniMP.UniCallBackBaseBean callBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
|
callBackBaseBean.setTopic(topic);
|
callBackBaseBean.setData(body);
|
HDLUniMPSDKManager.getInstance().sendUniMPEvent(HDLUniMP.UNI_APP_ID, HDLUniMP.UNI_APP_ID, callBackBaseBean.getJSONObject());
|
} catch (Exception e) {
|
HdlLogLogic.print("uni===原生主动向小程序发送通知事件", e.getMessage());
|
}
|
}
|
|
/**
|
* 检测是否当前页面注册的callback,是的话则移除
|
*/
|
public void checkRemoveOtherUniMPEventCallBack() {
|
HDLUniMPSDKManager.getInstance().checkRemoveOtherUniMPEventCallBack(this);
|
}
|
|
/**
|
* 组装uni发送数据格式
|
*
|
* @param data -附件数据(没有数据填null)
|
* @return JSONObject
|
*/
|
public JSONObject createdJsonDate(JSONObject data) {
|
HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
|
try {
|
if (data == null) {
|
data = new JSONObject();
|
}
|
data.put("token", UserConfigManage.getInstance().getToken());
|
uniCallBackBaseBean.setData(data);
|
return uniCallBackBaseBean.getJSONObject();
|
} catch (Exception e) {
|
HdlLogLogic.print("uni===组装uni发送数据格式", e.getMessage());
|
}
|
return new JSONObject();
|
}
|
}
|