java后台之极光推送开发案例(jpush)

本文介绍了如何在Java后台集成极光推送服务JPush,通过引入jar包并设置API密钥和AppKey,创建JPushClient进行推送操作。内容包括Android和iOS平台的通知配置,以及如何在手机端获取registerId进行一对一推送。对于iOS,还提到了证书申请的注意事项。
摘要由CSDN通过智能技术生成

前言
前段做一个项目,需要做一个手机端的app,于是对应的需要一个推送的功能,我就看了目前几个做了推送的产品,最后还是选择了一个免费的jpush来使用,因为公司自己用,如果有性能要求,则需要购买会员,有专门的通道可以避免延迟。下面开始介绍:
首先在jpush上的开发者服务上,进行模拟测试,生成一个app,扫码下载后进行,进行发送消息的测试,测试截图如下:
在这里插入图片描述

不太了解 的可以先熟悉下官网教程。下面说下代码怎么实现的
首先在后台中引入极光推送的jar包


cn.jpush.api
jpush-client
3.3.11


cn.jpush.api
jiguang-common
1.1.4

代码如下
public class JpushClientUtil {
private final static String masterSecret = “****";
private final static String appKey = "
”;
private static JPushClient jPushClient = new JPushClient(masterSecret,appKey);

/**
 * 推送给设备标识参数的用户
 * @param registrationId 设备标识
 * @param notification_title 通知内容标题
 * @param msg_title 消息内容标题
 * @param msg_content 消息内容
 * @param extrasparam 扩展字段
 * @return 0推送失败,1推送成功
 */
public static int sendToRegistrationId(List<String> registrationList, String notification_title, String msg_title, String msg_content, String extrasparam, String type) {
    int result = 0;
    try {
        PushPayload pushPayload=null;
        if(type.equals("0")){//自定义推送
            pushPayload=JpushClientUtil.buildPushObject_all_registrationId_alertWithTitle(registrationList,notification_title,msg_title,msg_content,extrasparam);
            System.out.println(pushPayload);
        }else if(type.equals("1")){
            pushPayload=JpushClientUtil.buildPushObject(registrationList,notification_title,msg_title,msg_content,extrasparam);
            System.out.println(pushPayload);
        }
        PushResult pushResult=jPushClient.sendPush(pushPayload);
        System.out.println(pushResult);
        if(pushResult.getResponseCode()==200){
            result=1;
        }
    } catch (APIConnectionException e) {
        e.printStackTrace();

    } catch (APIRequestException e) {
        e.printStackTrace();
    }

    return result;
}

/**
 * @Description iOS测试(弹给注册id用户)
 * @param [title, subtitle, body]
 * @return void
 **/
public static int testSendIosAlert(String title,String subtitle,String body,Map<String,String> extras,String registerId) {
    JPushClient jpushClient = new JPushClient(masterSecret, appKey);
    IosAlert alert = IosAlert.newBuilder()
            .setTitleAndBody(title, subtitle, body)
            .setActionLocKey("PLAY")
            .build();
    if(StringUtil.isEmpty(title)||StringUtil.isEmpty(subtitle)||StringUtil.isEmpty(body)||StringUtil.isEmpty(registerId)){
        return 0;
    }
    try {
        List<String> registerIDs = new ArrayList<>();
        registerIDs.add(registerId);
        PushPayload pushPayload= JpushClientUtil.buildPushObject(registerIDs,title,subtitle,body,"");
        System.out.println(pushPayload);
        PushResult result=jPushClient.sendPush(pushPayload);
        //PushResult result = jpushClient.sendIosNotificationWithAlias(alert, new HashMap<String, String>(), "alias1");
        //--PushResult result = jpushClient.sendIosNotificationWithRegistrationID(alert, extras,registerId);
                //PushResult result = jpushClient.sendIosMessageWithRegistrationID(title,subtitle,body,registerId);
        System.out.println("Got result - " + result);
        return 1;
    } catch (APIConnectionException e) {
        System.out.println("Connection error. Should retry later. "+e);
    } catch (APIRequestException e) {
        System.out.println("Error response from JPush server. Should review and fix it. "+e);
    }
    return 0;
}
/**
 * @Description andriod 测试(弹给注册id用户)
 * @param [title, alert, map, registerID]
 * @return void
 **/
public static int testSendAndroidAlert(String title,String alert,Map map,String registerID){
    JPushClient jpushClient = new JPushClient(masterSecret, appKey);
    if(StringUtil.isEmpty(title)||StringUtil.isEmpty(alert)||StringUtil.isEmpty(registerID)){
        return 0;
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值