友盟消息推送快速开发
2015-08-21 16:53
253 查看
友盟推送实现:
#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);
#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);
相关文章推荐
- 常见公告栏信息效果的实现
- 网络爬虫:分离生产者和消费者来优化爬虫程序
- 网络爬虫:分离生产者和消费者来优化爬虫程序
- hdu 5384 第一次写AC自动机
- HDU - 2602 Bone Collector
- Android 常见错误汇总
- DP:Corn Fields(POJ 3254)
- Hdu 4292 Food (最大流)
- 块匹配跟踪(转)
- 跳转微信功能(学习总结)
- JAVA中implements实现多接口
- WIFI 用的网站
- EditText被输入法覆盖的解决方法
- jquery获取checkbox是否选中
- vs2010下配置CUDA出现kernel launch failed问题,内核无效
- git基础之创建ssh公钥和密钥
- Windows防火墙开启
- 好玩的
- 利用Nginx实现tornado的反向代理
- HiWork走访老朋友Todolist——土豆丝团队