package com.hdl.photovoltaic.jpush; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.text.TextUtils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; import com.hdl.photovoltaic.config.ConstantManage; import com.hdl.photovoltaic.other.HdlJpushLogic; import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.ui.MyPowerStationActivity; import com.hdl.photovoltaic.ui.StartActivity; import com.hdl.photovoltaic.ui.bean.BUserInfo; import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus; import org.greenrobot.eventbus.EventBus; import java.lang.reflect.Type; import java.util.HashMap; import java.util.Objects; import cn.jpush.android.api.CustomMessage; import cn.jpush.android.api.JPushInterface; import cn.jpush.android.api.NotificationMessage; import cn.jpush.android.service.JPushMessageService; /** * 接收极光推送消息 */ public class JPushReceiverService extends JPushMessageService { /** * 自定义消息回调 * * @param context Context * @param customMessage 接收自定义消息内容 */ public void onMessage(Context context, CustomMessage customMessage) { HdlLogLogic.print("极光--->自定义消息回调--->" + new Gson().toJson(customMessage), true); } /** * 点击通知栏回调 * * @param context Context * @param message 接收到的通知内容 */ public void onNotifyMessageOpened(Context context, NotificationMessage message) { JPushMessageInfoBean jPushMessageInfoBean = pushDataProcessing(message); HdlJpushLogic.getInstance().JpushPushCommonData(context, jPushMessageInfoBean, true); // //点击后删除本地通知 // JPushInterface.clearAllNotifications(context); } /** * 收到推送通知回调 * * @param context Context * @param message 接收到的通知内容 */ public void onNotifyMessageArrived(Context context, NotificationMessage message) { JPushMessageInfoBean jPushMessageInfoBean = pushDataProcessing(message); HdlJpushLogic.getInstance().JpushPushCommonData(context, jPushMessageInfoBean, false); } /** * 注册成功回调 * * @param context Context * @param registrationId 注册 id */ public void onRegister(Context context, String registrationId) { HdlLogLogic.print("极光--->注册成功回调Id--->" + registrationId, true); } /** * 长连接状态回调 * * @param context Context。 * @param isConnected 长连接状态 */ public void onConnected(Context context, boolean isConnected) { HdlLogLogic.print("极光--->长连接状态回调--->" + isConnected, true); } /** * 推送数据作处理 */ private JPushMessageInfoBean pushDataProcessing(NotificationMessage message) { try { JPushMessageInfoBean jPushMessageInfoBean = new JPushMessageInfoBean(); String title = message.notificationTitle; String content = message.notificationContent; String pushData = message.notificationExtras; jPushMessageInfoBean.setTitle(title); jPushMessageInfoBean.setContent(content); if (TextUtils.isEmpty(pushData)) { return jPushMessageInfoBean; } JSONObject expandDataObject = JSON.parseObject(pushData); if (expandDataObject.containsKey("expandData")) { String expandDataJson = Objects.requireNonNull(expandDataObject.get("expandData")).toString(); if (TextUtils.isEmpty(expandDataJson)) { return jPushMessageInfoBean; } jPushMessageInfoBean.setExpandData(expandDataJson); JSONObject expantContentObject = JSON.parseObject(expandDataJson); if (expantContentObject.containsKey("messageType")) { String messageType = Objects.requireNonNull(expantContentObject.get("messageType")).toString(); if (!TextUtils.isEmpty(messageType)) { jPushMessageInfoBean.setMessageType(messageType); } } if (expantContentObject.containsKey("homeId")) { String homeId = Objects.requireNonNull(expantContentObject.get("homeId")).toString(); if (!TextUtils.isEmpty(homeId)) { jPushMessageInfoBean.setHomeId(homeId); } } if (expantContentObject.containsKey("expantContent")) { String expantContentJosn = Objects.requireNonNull(expantContentObject.get("expantContent")).toString(); if (!TextUtils.isEmpty(expantContentJosn)) { jPushMessageInfoBean.setExpantContent(expantContentJosn); } } } return jPushMessageInfoBean; } catch (Exception e) { return new JPushMessageInfoBean(); } } }