admin
2024-10-16 7fa83e5dd03f7896bd1d1e8c47f5e926ff3d4ba0
service-push/src/main/java/com/ks/push/utils/push/JpushUtil.java
@@ -9,9 +9,12 @@
import cn.jpush.api.push.model.Platform;
import cn.jpush.api.push.model.PushPayload;
import cn.jpush.api.push.model.audience.Audience;
import cn.jpush.api.push.model.notification.AndroidNotification;
import cn.jpush.api.push.model.notification.Notification;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.ks.push.utils.JPushUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.yeshi.utils.push.entity.PushAppInfo;
@@ -55,20 +58,25 @@
            params = message.getActivityParams();
        }
        PushPayload.Builder payloadBuilder = PushPayload.newBuilder().
                setPlatform(Platform.all())
                .setNotification(Notification.android(message.getContent(), message.getTitle(), params));
        AndroidNotification.Builder androidBuilder = AndroidNotification.newBuilder().setAlert(message.getContent()).setTitle(message.getTitle());
        if (regIds != null) {
            payloadBuilder.setAudience(Audience.registrationId(regIds));
        } else if (aliasList != null) {
            payloadBuilder.setAudience(Audience.alias(aliasList));
        //通过intent推送
        if (message.getActivity().startsWith("intent:#")) {
            JsonObject intent = new JsonObject();
            intent.addProperty("url", message.getActivity());
            androidBuilder = androidBuilder.setIntent(intent).addExtras(message.getActivityParams());
        } else {
            payloadBuilder.setAudience(Audience.all());
            androidBuilder = androidBuilder.addExtras(params);
        }
        PushPayload.Builder payloadBuilder = PushPayload.newBuilder().
                setPlatform(Platform.all())
                .setNotification(Notification.newBuilder()
                        .addPlatformNotification(androidBuilder.build())
                        .build());
        loadTarget(payloadBuilder, regIds, aliasList);
        PushPayload payload = payloadBuilder.build();
        try {
            PushResult result = jpushClient.sendPush(payload);
@@ -83,6 +91,16 @@
            LOG.info("Error Message: " + e.getErrorMessage());
        }
        return null;
    }
    private static void loadTarget(PushPayload.Builder builder, List<String> regIds, List<String> aliasList) {
        if (regIds != null) {
            builder.setAudience(Audience.registrationId(regIds));
        } else if (aliasList != null) {
            builder.setAudience(Audience.alias(aliasList));
        } else {
            builder.setAudience(Audience.all());
        }
    }
@@ -104,13 +122,7 @@
                .setMessage(Message.newBuilder()
                        .setMsgContent(data.toJSONString())
                        .build());
        if (regIds != null) {
            payloadBuilder.setAudience(Audience.registrationId(regIds));
        } else if (aliasList != null) {
            payloadBuilder.setAudience(Audience.alias(aliasList));
        } else {
            payloadBuilder.setAudience(Audience.all());
        }
        loadTarget(payloadBuilder, regIds, aliasList);
        PushPayload payload = payloadBuilder.build();
@@ -131,22 +143,22 @@
    public static void main(String[] args) {
        Map<String, String> activityParams = new HashMap<>();
        activityParams.put("activity", "test");
        activityParams.put("type", "requestLocation");
        activityParams.put("type", "web");
        JSONObject jumpParams = new JSONObject();
        jumpParams.put("id", 123123);
        jumpParams.put("url", "http://www.baidu.com");
        activityParams.put("params", jumpParams.toJSONString());
        PushAppInfo appInfo = new PushAppInfo();
        appInfo.setAppKey("987d3d50f209994fa522d001");
        appInfo.setAppSecret("e4053447d0014576ea2c47ab");
//        PushMessage message = new PushMessage("你好啊", "下午好,hello world", null, null, null, activityParams);
        appInfo.setAppKey("6f219d3bfa78428537090fef");
        appInfo.setAppSecret("c48f35cd1cef4b717f721e4b");
        Map<String,Object> dataMap=new HashMap<>();
        dataMap.put("type","requestLocation");
        JSONObject data = new  JSONObject(dataMap);
        pushMessage(appInfo, data, Arrays.asList(new String[]{"100d8559098624d84e6"}), null);
        PushMessage pushMessage = new PushMessage();
        pushMessage.setActivity(JPushUtil.createIntent("com.yeshi.makemoney.video.app.push.PushOpenClickActivity", "com.yeshi.makemoney.video"));
        pushMessage.setActivityParams(activityParams);
        pushMessage.setTitle("测试标题");
        pushMessage.setContent("测试内容");
        pushNotification(appInfo, pushMessage, Arrays.asList(new String[]{"1507bfd3f737761f2f2"}), null);
    }