====== Android 推送集成 ======
本文档为IM SDK中关于推送功能的集成说明。
===== 1、Android SDK 集成 =====
环信推送与环信 IM 使用相同的 SDK,你可以参考 IM 文档导入和集成 SDK, 然后注册登录。
SDK 导入:[[https://docs-im.easemob.com/im/android/sdk/import#android_sdk_导入|Android SDK 导入]]
注册登录:[[https://docs-im.easemob.com/im/android/sdk/basic#注册|注册登录]]
**手机权限**
需在手机设置允许弹出推送消息通知栏。
===== 2、在线推送集成 =====
==== 通知消息 ====
通知消息的通知栏提示由 SDK 封装,只需调用对应的 REST API 推送,SDK 收到会弹出对应的通知栏提示。
点击通知栏会根据跳转事件执行对应的操作,如需自己实现点击跳转,可在项目里继承 ''%%EMNotificationIntentReceiver%%'',重写 ''%%onNotificationClick%%'' 获取 ''%%EMNotificationMessage%%'',实现自己的跳转逻辑。
==== 透传消息 ====
SDK 收到透传消息时不做处理,需在项目中继承 ''%%EMNotificationIntentReceiver%%'',重写 ''%%onNotifyMessageArrived%%'' 获取 ''%%EMNotificationMessage%%'',判断属性 ''%%needNotification%%'' 是 ''%%false%%'',获取 ''%%extra%%'' 再做处理(''%%needNotification%%'' 是 ''%%false%%'',表示是透传消息)。
''%%EMNotificationIntentReceiver%%''
继承 ''%%EMNotificationIntentReceiver%%'' 实现的 ''%%receiver%%'' 参考:
public class EasemobReceiver extends EMNotificationIntentReceiver {
@Override
public void onNotifyMessageArrived(Context context, EMNotificationMessage notificationMessage) {
if(!notificationMessage.isNeedNotification())
{
String params = notificationMessage.getExtras(); // 判断是透传消息,获取附加字段去处理。
}
}
@Override
public void onNotificationClick(Context context, EMNotificationMessage notificationMessage)
{
// 实现自己的通知点击跳转逻辑。
}
}
项目清单里配置继承 ''%%EMNotificationIntentReceiver%%'' 实现的 ''%%receiver%%'':
===== 3、离线推送集成 =====
离线推送需参考环信 IM 的[[http://docs-im-beta.easemob.com/document/android/push.html|第三方推送集成]],集成各个厂商的推送(如不需要离线推送,可忽略)。