2016/08/03
///by xbw/
//android studio//
实时弹幕,做到实时,就是A客户端发送了弹幕,将弹幕发送到服务器端,通过服务器的调配,使得B客户端以及A客户端,CDEFG客户端都能及时收到消息,那我们就用到了信鸽推送的消息透传,有了这个东西,我觉得做个即时通讯也是分分钟的事。
先去腾讯信鸽看看,传送门
传送到了帮助文档,解释很详细了,按着帮助文档配置就好了。
透传消息命令(可自定义展示任意位置)
指的是由信鸽下发给APP的内容,需要APP继承XGPushBaseReceiver接口实现并自主处理所有操作过程,也就是说,下发的消息默认是不会展示在通知栏的,信鸽只负责将消息从信鸽服务器下发到APP这个过程,不负责消息的处理逻辑,需要APP自己实现。具体可参考Demo中的CustomPushReceiver。
消息指的是由开发者通过前台或后台脚本下发的文本消息,信鸽只负责将消息传递给APP,APP完全自主负责消息体的处理。
消息具有灵活性强和高度定制性特点,因此更适合APP自主处理个性化业务需求,比如下发APP配置信息、自定义处理消息的存储和展示等。
例如:某游戏需要针对不同情景(用户升级提示、版本更新提示、活动营销提示等)提供不同的通知,可以把这些情景以json格式封装在消息,下发到APP,然后APP根据这些场景提供不同的提示,满足个性化需求。
- 消息配置
若要接收消息,需要配置消息接收Receiver,即在AndroidManifest.xml配置以下信息,其中android:name的值需要修改为APP自己实现的Receiver。
<!-- APP实现的Receiver,用于接收消息和结果反馈 -->
<!-- com.tencent.android.xgpushdemo.CustomPushReceiver需要改为自己的Receiver -->
<receiver android:name="com.tencent.xgpushdemo.CustomPushReceiver" >
<intent-filter>
<!-- 接收消息透传 -->
<action android:name="com.tencent.android.tpush.action.PUSH_MESSAGE" />
<!-- 监听注册、反注册、设置/删除标签、通知被点击等处理结果 -->
<action android:name="com.tencent.android.tpush.action.FEEDBACK" />
</intent-filter>
</receiver>
- 接收消息
开发者在前台下发消息,需要APP继承XGPushBaseReceiver重载onTextMessage方法接收,成功接收后,再根据特有业务场景进行处理。
同时,XGPushBaseReceiver还提供其它相关的接口,如通知被展示、被点击的结果反馈、注册/反注册结果反馈等,请参考“XGPushBaseReceiver”章节或demo。
请确保在AndroidManifest.xml已经注册过该receiver,即设置YOUR_PACKAGE.XGPushBaseReceiver。
public void onTextMessage(Context context,
XGPushTextMessage message)
context:应用当前上下文
message:接收到消息结构体,其中XGPushTextMessage的方法列表如下:
方法名 | 返回值 | 默认值 | 描述 |
getContent() | String | "" | 消息正文内容,通常只需要下发本字段即可 |
getCustomContent() | String | "" | 消息自定义key-value |
getTitle() | String | "" | 消息标题(注意:从前台下发消息命令字中的描述不属于标题) |
我们需要接受服务器的消息到客户端,使用
public
void
onTextMessage(Context context,
XGPushTextMessage message)方法接受
方法名 | 返回值 | 默认值 | 描述 |
getContent() | String | "" | 消息正文内容,通常只需要下发本字段即可 |
getCustomContent() | String | "" | 消息自定义key-value |
getTitle() | String | "" | 消息标题(注意:从前台下发消息命令字中的描述不属于标题) |