您的位置:首页 > 其它

友盟消息推送快速开发

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);


public
voidopenUrl(Context
context, UMessage msg);


public
voidopenActivity(Context
context, UMessage msg);


public
voiddealWithCustomAction(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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: