友盟推送集成小结

来源:互联网 发布:软件下载软件 编辑:程序博客网 时间:2024/05/03 20:52

1.      Eclipes友盟推送(Pushsdk)的集成

(1)       官网上下载sdk

(2)       将解压缩后的文件PushSdk项目导入eclipes

(3)       将PushSdk设置为library

(4)       对我们自己的项目添加pushsdk的引用

(5)       将pushsdk项目中的清单文件中的${applicationId}替换为我们的清单文件中的manifest中的包名

(6)       将eclipselibs文件夹中的okio-1.6.0.jar和wire-runtime-2.1.2.jar添加到pushsdk的lib中

(7)       在我们的项目的project.properties中添加manifestmerger.enabled=true

(8)      在友盟上添加我们的应用,包名是清单文件中mainfest中的package,添加成功后获取appkeyUmeng Message Secret

(9)      在我们的项目中添加appkeyUmeng Message Secret

(10)   然后我们自己的项目就可以根据文档(文档的选择要看我们的pushsdk中的com.umeng.message_v2.8.1L_Beta.jar版本查找对应的文档)进行一个方法一个方法的调用了通过mPushAgent.enable()开启消息推送,通过UmengRegistrar.getRegistrationId(this);获取toukentoken是友盟针对我们的设备上的这个应用生成的友盟的识别标识)

(11)   当项目启动后后台会运行一个push service,若我们除了我们自己的项目外还有项目使用了友盟推送,则push service长连接只会有一个,此时长连接是挂在其他项目上的,我们也可以通过这个长连接收到推送。(具体解释官方文档是:http://bbs.umeng.com/thread-10116-1-1.html)

(12)   当是上面的情况时,我们通过官网进行推送测试时,查看工具中的该设备时显示是离线的状态,但我们仍然可以收到消息。(具体官网的测试设备的使用和我遇到的问题)

(13)   对于开启服务一般放在application中,或主Activity

(14)   我们可以使用自己的消息栏通知,也可以使用友盟规定消息通知格式,可以在友盟上设置推送的格式,和点击后跳转到达界面

2.      使用友盟进行消息推送的测试

(1)    登陆官网添加我们的应用

(2)    选择测试模式,一步一步根据提示添加

(3)    选择添加测试消息,进行测试,测试消息后续动作规定了跳转界面才会跳转到特定界面,规定了自定义行为才会进UmengNotificationClickHandler回调

(4)    工具中输入我们设备对应的友盟提供的token查询查看我们的这个应用的长连接状态,当我们的应用是挂在其他应用的长连接时,输出的状态是离线的,但仍然可以收到消息,若不可以,我们可以试着在后台关闭pushservice然后重新启动我们的应用,此时我们的应用的长连接就是在线的状态了。发送测试消息就可以收到了

(5)    设备状态查看解释http://bbs.umeng.com/forum.php?mod=viewthread&tid=14055&page=1&extra=#pid28997

(6)    测试模式中的添加测试设备:只是针对该应用在这个设备上的使用

 

3.在友盟中规定跳转到指定activity时,可以添加参数,添加的参数可以在指定activity中我们可以通过getIntent获取传值的Intent从而获取传递的值。

Intent intent= getIntent();
Bundle bundle = intent.getExtras();
String type = bundle.getString("type");
seqno = bundle.getString("djbh");

efid = bundle.getString("efid");

而对于自定的我们可以在application中定义UmengNotificationClickHandler,通过setNotificationClickHandler()设置监听,当来消息后若有参数可以通过Map<String, String> map= uMessage.extra;获取传递的参数

4.  使用代码

打开推送和数据统计获取token

mPushAgent =PushAgent.getInstance(this);

           mPushAgent.enable(newIUmengRegisterCallback() {

 

                    @Override

                    public voidonRegistered(String registrationId) {

                             newHandler().post(new Runnable() {

                                       @Override

                                       publicvoid run() {

                                                //onRegistered方法的参数registrationId即是device_token

                                       }

                             });

                    }

           });

           mPushAgent.onAppStart();//

           //mPushAgent.setMessageChannel("yanglinlin123456");

           device_token = UmengRegistrar.getRegistrationId(this);

           Log.e("TAG", device_token);

 

//

UmengNotificationClickHandlernotificationClickHandler = new UmengNotificationClickHandler() { // 点击通知的自定义行为

 

                    @Override

                    public voiddealWithCustomAction(Context context, UMessage uMessage) {

                             super.dealWithCustomAction(context,uMessage);

                            

                    }

           };

 

           mPushAgent.setNotificationClickHandler(notificationClickHandler);



参考:http://bbs.umeng.com/thread-6200-1-1.html       http://bbs.umeng.com/thread-11786-1-1.html

 

0 0
原创粉丝点击