极光推送工具类-指定用户(根据设备别名)极光推送

该代码段展示了如何使用极光推送服务进行指定用户的推送操作。通过设置消息内容、通知类型、参数和目标设备别名,实现全平台或者指定设备的推送,并在接收到推送后跳转到特定页面。同时,代码处理了测试和正式环境的APNS配置。
摘要由CSDN通过智能技术生成
/**
 * 指定用户(根据设备别名)极光推送
 * 极光官方文档 极光推送 - Push API v3 - 极光文档
 * @param message(消息内容体-推送alert的消息)
 * @param to (通知内容体)
 * @param type(定义类型,供用户收到推送后点击跳转到指定页面)
 * @param param(跳转到指定页面需要的参数,可定义为json字符串格式)
 * @param token (推送接收方设备别名)
 * @return
 */
public Result push(String message, String to, Integer type, String param, JSONObject jsonObject, String... token) {
    String appKey = ""; // 极光官网注册创建应用后的appKey 
    String masterSecret = ""; // 极光官网注册创建应用后的masterSecret 
    boolean apnsprod = false; // 测试环境false正式环境true
    try {
        PushPayload payload = pushAllNotify(message, to, type, param, apnsprod, token);
        JPushClient jpushClient = new JPushClient(masterSecret, appKey, null, ClientConfig.getInstance());
        PushResult result = jpushClient.sendPush(payload);
        return Result.OK("OK",JSON.toJSONString(result));
    } catch (Exception e) {
        log.error(e.getMessage(), e);
        return Result.OK("error",e.getMessage());
    }
}
/**
 * 全平台指定用户推送
 *
 * @param message
 * @param to
 * @param token
 * @return
 */
public PushPayload pushAllNotify(String message, String to, Integer type, String param, boolean apnsprod, String... token) {
    PushPayload.Builder payload = PushPayload.newBuilder()
            .setPlatform(Platform.all());
    payload.setAudience(StringUtils.isEmpty(token) ? Audience.all() : Audience.alias(token));
    payload.setNotification(Notification.newBuilder().setAlert(message)
            .addPlatformNotification(IosNotification.newBuilder()
                    .addExtra("to", to)
                    .addExtra("type",type)
                    .addExtra("param",param)
                    .build())
            .addPlatformNotification(AndroidNotification.newBuilder()
                    .addExtra("to", to)
                    .addExtra("type",type)
                    .addExtra("param",param)
                    .build())
            .build()
    );
    if (apnsprod) payload.setOptions(Options.newBuilder().setApnsProduction(true).build());
    return payload.build();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值