您的位置:首页 > 其它

集成极光推送服务,实现通知推送功能

2016-06-14 16:10 253 查看
当下有个产品需要给移动端(安卓和ios)推送消息通知,个人觉得消息推送功能如何有条件的话还是别依赖于第三方的服务。

因为消息由第三方软件公司去发送首先安全性就没有保障了,其次是对数据的处理,尽管很多第三方服务都提供了很多的api接口,但是总有一些需求是这种第三方服务满足不了的,所以有条件的公司可以自己搭一套消息推送服务。好了废话不多说,先讲一下极光推送这个第三方的服务吧,总体来讲还是比较专业的,官网也给出了比较简单的demo,但是也仅限于简单的demo,如果想传递带附加消息的通知你在官网是看不到的,找了半天才在别人的博客上找到,所以这里晒一下我使用极光推送用到的帮助类。

package cfs.wsdl.jpush;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.regex.Pattern;

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

import cfs.core.constant.CfsConstant;
import cfs.core.util.Util;
import cfs.wsdl.cache.Mycache;
import cfs.wsdl.constant.MobileConstant;
import cfs.wsdl.model.AnswerQuestion;
import cfs.wsdl.model.Questions;
import cfs.wsdl.model.QuestionsBank;
import cfs.wsdl.model.Ranking;
import cn.jpush.api.JPushClient;
import cn.jpush.api.common.resp.APIConnectionException;
import cn.jpush.api.common.resp.APIRequestException;
import cn.jpush.api.push.PushResult;
import cn.jpush.api.push.model.Message;
import cn.jpush.api.push.model.Options;
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.IosNotification;
import cn.jpush.api.push.model.notification.Notification;

public class JpushUtil {

//教师端
public static final String mastersecret_teacher="51411********";
public static final String appkey_teacher="f85d6231*********";
public static final String content_teacher="学生们提交作业啦,快去看看吧。";

public static void main(String[] args) {
JsonObject j= new JsonObject();
j.addProperty("homework_name", "随便写的");
j.addProperty("assignmen_id", "bc58e262-6b27-477f-a605-7e1b1318e0dd");
JpushUtil ju=new JpushUtil();
ju.jpushSend(JpushUtil.mastersecret_teacher,JpushUtil.appkey_teacher,"单独给小伟发个测试用的数据",j);
}

public  void  jpushSend(String mastersecret,String appkey, String content,JsonObject extra){
JPushClient jpushClient = new JPushClient(mastersecret, appkey);
PushPayload payload =PushPayload.newBuilder()
.setPlatform(Platform.all())
//   .setAudience(Audience.tag_and("tag1", "tag_all"))
.setAudience(Audience.all())
.setNotification(Notification.newBuilder()
//设置安卓平台消息推送
.addPlatformNotification(AndroidNotification.newBuilder().setAlert(content)
.addExtra("param", extra)
.build())
//设置ios平台消息推送
.addPlatformNotification(IosNotification.newBuilder()
.setAlert(content)
.autoBadge()
//  .setBadge(5)
//  .setSound("happy")
.addExtra("param", extra)
.build())
.build())
// .setMessage(Message.content(content))
.setOptions(Options.newBuilder()
.setApnsProduction(false)
.build())
.build();
try {
PushResult result = jpushClient.sendPush(payload);
System.out.println("消息发送成功 - " + result);
} catch (APIConnectionException e) {
System.out.println("Connection error, should retry later========"+ e);
} catch (APIRequestException e) {
System.out.println("Should review the error, and fix the request========"+ e);
System.out.println("HTTP Status: " + e.getStatus());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Error Message: " + e.getErrorMessage());
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: