集成方式
- 依赖push library
- 项目工程Application继承PushApp
- 开启推送
- 设置推送监听
开启推送
public void startPush(View view) {
AwenPushManager pushManager = new AwenPushManager.Build()
// TODO: 2018/6/12 注意这里,只是为了效果方便,卸载activity里面,这样写会导致activity内存泄露,最好还是在服务中开启
.setOnPushListener(this) // 设置推送回调
.settingSerice("172.18.0.159", 8800)
.build(getApplication());
// 开启接收推送
pushManager.startPush();
}
OnPushListener回调
public class PushListener implements OnPushListener {
@Override
public void onPushStart() {
Log.d("wyz", "推送服务器连接成功!");
Toast.makeText(App.getApp(), "推送服务器连接成功", Toast.LENGTH_SHORT).show();
}
@Override
public void receivePush(PushEntity entity) {
if (entity.type==PushEntity.NOTIFICATION){
Log.d("wyz", "notification推送消息");
NotificationUtils.makeStatusNotification(entity.type, new String(Base64.decode(entity.baseData, Base64.NO_WRAP)), App.getApp());
}else if (entity.type==PushEntity.TOAST) {
Log.d("wyz", "toast推送消息");
Toast.makeText(App.getApp(), "推送Type:" + entity.type + " " + new String(Base64.decode(entity.baseData, Base64.NO_WRAP)), Toast.LENGTH_SHORT).show();
}else if (entity.type==PushEntity.IMAGE) {
Log.d("wyz", "图片推送");
}
}
}
当客户端连接成功后会回调onPushStart,当收到推送消息会回调receivePush
receivePush的数据为PushEntity,对用type来区分类型,数据为前面的设计方案Base64解码集合
整个使用就这么简单