友盟消息推送快速开发
来源:互联网 发布:拉依达准则 c语言 编辑:程序博客网 时间:2024/06/05 15:11
友盟推送实现:
#1 注册:
注册友盟平台账号,进入管理后台
#2 对应包名注册:appKey;
我的产品-添加新应用
#3 点击应用进入消息推送
应用信息:添加包名—获取appkey、Message Secret
#4 下载sdk ,加入到要实现推送项目的lib目录下
#5 配置xml
a.添加权限
b.注册server、Activity等
c.配置appkey、message secret 、channel
#5 项目中具体代码操作:
(1)在应用启动的MainActivity或SplashActivity的onCreate方法中
注册消息推送和获取设备的deviceToken;
a:注册推送:
mPushAgent = PushAgent.getInstance(mAppContext);
mPushAgent.enable();
b:获取deviceToken:由于注册请求友盟后台,是异步的,所有获取deviceToken要在注册成功后的回调方法 中获取:
mPushAgent.enable(new IUmengRegisterCallback() {
@Override
public void onRegistered(String arg0) {
//从sharedPreference获取设备信息:deviceToken ,如果有的话,不获取,没有的话,获取到,并存储到sharedPreference中去;
deviceToken = UtilsSharedPreferences.getStringValue(UtilsSharedPreferences.user, context,
UtilsSharedPreferences.User.deviceToken.getAttribute(), "");
if(TextUtils.isEmpty(deviceToken)){
deviceToken = UmengRegistrar.getRegistrationId(context);
UtilsSharedPreferences.putStringValue(UtilsSharedPreferences.user, context,
UtilsSharedPreferences.User.deviceToken.getAttribute(), deviceToken);
}
}
});
获取友盟对应的设备唯一表示:在 mPushAgent.enable()之后
String device_token = UmengRegistrar.getRegistrationId(this);
(2)在所有Activity的oncreate方法中添加代码
PushAgent.getInstance(context).onAppStart();
(3)提供开启和关闭友盟推送的接口
PushAgent mPushAgent = PushAgent.getInstance(context);
mPushAgent.enable();//开启
mPushAgent.disable();//关闭
至此,简单消息推送就集成完了,可以进行默认的消息推送了
添加别名: boolean addAlias = mPushAgent.addAlias("bao", "bieming");在 mPushAgent.enable()之后
注意:要在异步中如:
new MyAsyncTask() {
@Override
public void onPreExecute() {
// TODO Auto-generated method stub
}
@Override
public void onPostExecute() {
// TODO Auto-generated method stub
}
@Override
public void doInBackground() {
try {
boolean addAlias = mPushAgent.addAlias("bao", "bieming");
System.out.println("baopengjian addAlias="+addAlias);
} catch (Exception e) {
e.printStackTrace();
}
}
}.execute();
二、 消息
友盟消息推送分为2种:通知消息(Notification)和 自定义消息(Message)
1.通知消息:
- 打开应用
- 使用系统默认浏览器打开指定网页
- 打开指定页面(Activity)
带String:参数带双引号;key="type" value="zhuazhangting"
带对象:
- 自定义行为
- 更新应用
2.自定义消息
- 打开应用
- 使用系统默认浏览器打开指定网页
- 打开指定页面(Activity)
- 自定义行为
#1 消息处理:
- 自定义行为:自定义行为的数据放在"custom" 字段。 在友盟后台或通过API发送消息时,在“后续动作”中的“自定义行为”中输入相应的值或代码即可实现。
- 在应用自定义Application的oncreate()方法中,实现对消息的处理:
PushAgent mPushAgent = PushAgent.getInstance(applicationContext);
//处理通知消息
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler(){
//打开页面(Activity)
@Override
public void openActivity(Context context, UMessage msg) {
super.openActivity(context, msg);
System.out.println("baopengjian msg="+msg);
System.out.println("baopengjian msg="+msg.custom);
System.out.println("baopengjian msg="+msg.random_min);
System.out.println("baopengjian msg="+msg);
Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
/*
String aday=arg1.custom;
System.out.println("baopengjian message="+arg1);
OfficialModel model = new OfficialModel();
model.setAdays(aday);
Intent intent = new Intent(applicationContext,PublicWithModel.class);
intent.putExtra("model", model);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
applicationContext.startActivity(intent);*/
}
//自定义行为
@Override
public void dealWithCustomAction(final Context context, UMessage msg) {
System.out.println("baopengjian msg="+msg.custom);
Message message = new Message();
message.obj = msg.custom;
mHandler.sendMessage(message);
}
};
处理自定义消息(Message):
UmengMessageHandler messageHandler = new UmengMessageHandler(){
@Override
public void dealWithCustomMessage(final Context context, final UMessage msg) {
Intent intent = new Intent(context,MyBroadcastReceiver.class);
intent.putExtra("msg", msg.custom);
context.sendBroadcast(intent);
new Handler(getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
}
});
}
}
};
mPushAgent.setMessageHandler(messageHandler);
自定义消息打开页面:在dealWithCustomMessage()的参数的run()方法中实现
I ntent intent = new Intent(context,LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
# 2 处理Notification
UmengNotificationClickHandler:
publicvoidlaunchApp(Context context, UMessage msg);
publicvoidopenUrl(Context context, UMessage msg);
publicvoidopenActivity(Context context, UMessage msg);
publicvoiddealWithCustomAction(Context context, UMessage msg);
友盟推送实现:
#1 注册:
注册友盟平台账号,进入管理后台
#2 对应包名注册:appKey;
我的产品-添加新应用
#3 点击应用进入消息推送
应用信息:添加包名—获取appkey、Message Secret
#4 下载sdk ,加入到要实现推送项目的lib目录下
#5 配置xml
a.添加权限
b.注册server、Activity等
c.配置appkey、message secret 、channel
#5 项目中具体代码操作:
(1)在应用启动的MainActivity或SplashActivity的onCreate方法中
注册消息推送和获取设备的deviceToken;
a:注册推送:
mPushAgent = PushAgent.getInstance(mAppContext);
mPushAgent.enable();
b:获取deviceToken:由于注册请求友盟后台,是异步的,所有获取deviceToken要在注册成功后的回调方法 中获取:
mPushAgent.enable(new IUmengRegisterCallback() {
@Override
public void onRegistered(String arg0) {
//从sharedPreference获取设备信息:deviceToken ,如果有的话,不获取,没有的话,获取到,并存储到sharedPreference中去;
deviceToken = UtilsSharedPreferences.getStringValue(UtilsSharedPreferences.user, context,
UtilsSharedPreferences.User.deviceToken.getAttribute(), "");
if(TextUtils.isEmpty(deviceToken)){
deviceToken = UmengRegistrar.getRegistrationId(context);
UtilsSharedPreferences.putStringValue(UtilsSharedPreferences.user, context,
UtilsSharedPreferences.User.deviceToken.getAttribute(), deviceToken);
}
}
});
获取友盟对应的设备唯一表示:在 mPushAgent.enable()之后
String device_token = UmengRegistrar.getRegistrationId(this);
(2)在所有Activity的oncreate方法中添加代码
PushAgent.getInstance(context).onAppStart();
(3)提供开启和关闭友盟推送的接口
PushAgent mPushAgent = PushAgent.getInstance(context);
mPushAgent.enable();//开启
mPushAgent.disable();//关闭
至此,简单消息推送就集成完了,可以进行默认的消息推送了
添加别名: boolean addAlias = mPushAgent.addAlias("bao", "bieming");在 mPushAgent.enable()之后
注意:要在异步中如:
new MyAsyncTask() {
@Override
public void onPreExecute() {
// TODO Auto-generated method stub
}
@Override
public void onPostExecute() {
// TODO Auto-generated method stub
}
@Override
public void doInBackground() {
try {
boolean addAlias = mPushAgent.addAlias("bao", "bieming");
System.out.println("baopengjian addAlias="+addAlias);
} catch (Exception e) {
e.printStackTrace();
}
}
}.execute();
二、 消息
友盟消息推送分为2种:通知消息(Notification)和 自定义消息(Message)
1.通知消息:
- 打开应用
- 使用系统默认浏览器打开指定网页
- 打开指定页面(Activity)
带String:参数带双引号;key="type" value="zhuazhangting"
带对象:
- 自定义行为
- 更新应用
2.自定义消息
- 打开应用
- 使用系统默认浏览器打开指定网页
- 打开指定页面(Activity)
- 自定义行为
#1 消息处理:
- 自定义行为:自定义行为的数据放在"custom" 字段。 在友盟后台或通过API发送消息时,在“后续动作”中的“自定义行为”中输入相应的值或代码即可实现。
- 在应用自定义Application的oncreate()方法中,实现对消息的处理:
PushAgent mPushAgent = PushAgent.getInstance(applicationContext);
//处理通知消息
UmengNotificationClickHandler notificationClickHandler = new UmengNotificationClickHandler(){
//打开页面(Activity)
@Override
public void openActivity(Context context, UMessage msg) {
super.openActivity(context, msg);
System.out.println("baopengjian msg="+msg);
System.out.println("baopengjian msg="+msg.custom);
System.out.println("baopengjian msg="+msg.random_min);
System.out.println("baopengjian msg="+msg);
Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
/*
String aday=arg1.custom;
System.out.println("baopengjian message="+arg1);
OfficialModel model = new OfficialModel();
model.setAdays(aday);
Intent intent = new Intent(applicationContext,PublicWithModel.class);
intent.putExtra("model", model);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
applicationContext.startActivity(intent);*/
}
//自定义行为
@Override
public void dealWithCustomAction(final Context context, UMessage msg) {
System.out.println("baopengjian msg="+msg.custom);
Message message = new Message();
message.obj = msg.custom;
mHandler.sendMessage(message);
}
};
处理自定义消息(Message):
UmengMessageHandler messageHandler = new UmengMessageHandler(){
@Override
public void dealWithCustomMessage(final Context context, final UMessage msg) {
Intent intent = new Intent(context,MyBroadcastReceiver.class);
intent.putExtra("msg", msg.custom);
context.sendBroadcast(intent);
new Handler(getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(context, msg.custom, Toast.LENGTH_LONG).show();
}
});
}
}
};
mPushAgent.setMessageHandler(messageHandler);
自定义消息打开页面:在dealWithCustomMessage()的参数的run()方法中实现
I ntent intent = new Intent(context,LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
# 2 处理Notification
UmengNotificationClickHandler:
publicvoidlaunchApp(Context context, UMessage msg);
publicvoidopenUrl(Context context, UMessage msg);
publicvoidopenActivity(Context context, UMessage msg);
publicvoiddealWithCustomAction(Context context, UMessage msg);
0 0
- 友盟消息推送快速开发
- iOS-友盟消息推送的快速实现
- 友盟消息推送
- 友盟消息推送
- iOS开发-消息推送
- Android友盟消息推送
- 友盟消息推送API
- 友盟消息推送功能
- 极光消息推送服务器端开发实现推送
- [友盟推送]谈谈消息推送服务的"送达率"
- 友盟推送测试环境无法收到推送消息解决方案
- baidu推送消息定制开发
- IOS消息推送服务端开发
- android开发之消息推送
- Android开发之消息推送
- Android开发 消息推送 Push
- iOS开发系列--消息推送
- Appcan开发之消息推送
- hdu 5384 第一次写AC自动机
- PPT入门学习探讨
- 简单的检查DB是否夯死的监控脚本
- Android-Activity程序动态的生成表格布局管理器
- ZOJ 1045 HangOver
- 友盟消息推送快速开发
- css - 弹出框居中显示没有滚动条-页面也可以滚动
- vxWorks启动过程 -x86 Pentium
- zookeeper学习记录
- 关于Uboot的NOR boot 或NAND boot问题
- 【日常学习】【高精快速幂】codevs1087 麦森数题解
- CentOS 6.5下Rsync远程同步
- Unity3D加载预制体到场景中
- c查找算法——线性索引查找