推送功能在手机应用开发中越来越重要,几乎成为所有App必备的功能,由于Android本身没有消息推送机制,通常采用的是基于XMPP协议的推送,但这种开发很麻烦,因此在市场上应运而生了提供消息推送服务的诸多产品,例如:百度云、个推、极光等。
极光推送正是一个整合了Android推送、iOS推送的统一推送服务平台。下面杰瑞教育的老师为大家讲解一下如何使用极光实现消息推送应用,并重点讲解一下如何实现向分组发送消息及推送服务端和自身应用集成,具体实现过程如下:
Android端开发,实现向指定人员推送消息
-
集成成功之后,服务端发送消息会被所有的安装应用的客户端所接收,我们再继续看看如何在应用中向指定的人群进行消息推送?
要指定向某一个特定的人,或者某一群特定的人,则相对复杂。因为对于 JPush 来说,某一个人就是一个注册ID,这个注册ID与开发者App没有任何关系,或者说对开发者App是没有意义的。
如果要对开发者App有意义的某个特定的用户推送消息,则需要:把 JPush 注册用户与开发者App 用户绑定起来。我们可以使用别名与标签的功能
-
设置别名(alias)
为安装了应用程序的用户,取个别名来标识。以后给该用户 Push 消息时,就可以用此别名来指定。每个用户只能指定一个别名。同一个应用中,尽可能为每个客户端用户标识唯一名称,以便服务端能通过该名称来唯一确定用户。
调用JPushInterface方法:
public static void setAlias(Context context, String alias, TagAliasCallback callback)
-
如下所示:
-
设置标签(tag)
标签实质就是将应用客户根据应用的需要按类别进行分组,服务端可以组为单位来批量下发 Push 消息,这样组内客户端所有用户都可以收到该消息。一个用户可以打多个标签,标签没有唯一性要求。
调用JPushInterface方法:
public static void setTags(Context context, Set<String> tags,TagAliasCallback callback)
-
同时设置组和标签
也可调用JPushInterface的setAliasAndTags方法同时设置别名和标签,方法如下:
public static void setAliasAndTags(Context context, String alias, Set<String> tags, TagAliasCallback callback)
-
案例实现:
下面代码实现为登录的学生设置别名和标签,别名为其学号,每个用户有两个标签分别是所属班级和所属专业,user是用户登录成功后的信息
END
开发消息推送服务端
-
环境搭建
1.下载服务端SDK
2.在项目中加入jar包
-
服务端实现步骤
1.创建JPushClient
JPushClient jpushClient = new JPushClient(masterSecret, appKey, 3);
2.构建一个PushPayload对象(推送对象)
确定推送消息的目标,包括推送的平台(Android、IOS)、消息内容和目标(所有人、别名、标签),构建简单的推送对象:向所有平台,所有人,推送内容为 content 的通知。
-
推送消息
PushResult result=jpushClient.sendPush(payload);
应用客户推送消息
参数:payload 即第二步创建的推送对象
返回值:PushResult 表示服务端推送结果
包含下列数据:
msg_id:返回推送消息的id
-
服务端代码实现
1.编写MessagePush组件封装消息推送方法
-
JSP页面
主要是设计表单将数据提交给MessagePushServlet,这里页面代码就不附加了
-
编写Servlet
-