xinwii / PushSdk

集成小米,华为,魅族推送,大幅度提高推送到达率

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PushSdk

集成小米,华为,魅族推送,最稳定的推送方式

###1.申请帐号

去华为,小米,魅族渠道申请,华为是根据包名推送,小米,魅族在String.xml中填写appid,appkey。

因为申请开发者帐号,还涉及到身份证注册信息之类的,我就不提供了,申请好后,记得修改包名。

###2.初始化

*建议在application中的onCreate中初始化,如果程序被杀死,系统级推送会调起app,经测试在application中初始化比较好。

 /**
   * 初始化系统级推送
   */
   private void initRomPush() {

      GPushWrapper.getInstance().init(this);
      GPushWrapper.getInstance().setClickCallBack(new PushSdkCallBack() {
          @Override
          public void onNotificationMessageClicked(Context context, String message) {
              //可以不做任何处理,采用系统推送的方案,但是会有很多问题,比如,app被杀死,应该从欢迎页进入
              Log.e("GPush", "GPush click");
              boolean isLogin = true;
              if (isLogin) {
                  //有登录态跳往哪里
              } else {
                  //没有登录态从欢迎界面进入,
                  fromPushSdk = true;
                  /*Intent intent = new Intent(context, WelcomeActivity.class);
                  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                  context.startActivity(intent);*/
              }
          }

          @Override
          public void upLoadToken(String token,int RomType) {
              //网络请求上传token,RomType系统rom版本
              // PushDeviceInfoMgr.MI_UI_ROM;  小米
              // PushDeviceInfoMgr.HUAWEI_EM_UI_ROM; 华为
              //PushDeviceInfoMgr.MEIZU_FLYME_OS_ROM; 魅族
          }
      });
  }

###3.逻辑

手机系统默认四个分类,小米,华为,魅族,其他手机,其他手机采用小米推送,根据rom类型初始化对应推送sdk,

在receiver中接收小米的regId,魅族的pushId,华为的token,统一命名为token,把token以及rom类型(建议加上deviceId)传递给服务端。

这样可以针对特定用户推送。

在点击通知栏时,可以采用后端控制跳转某个acitivity,并且传递参数,三个平台都支持,但是如果跳转逻辑比较复杂,需要自定义,可以实现

onNotificationMessageClicked,如果后台有活动的activity,并且已经登录跳转某个界面,如果后台有活动的activity没有登录,一般跳转后台活动

activity中的最后一个activity,如果后台没有活动的activity,这时一般从启动页重新启动app,并且设置一个标记,方便启动完成后跳转某个界面。

###4.推送注意点

魅族和小米推送很像,华为不大一样,华为不支持推送别名,华为推送以key,value形式推送,别名的功能,key是alias,华为没有id,key,华为推送

是按照包名进行推送的。

###5.推送结果

  • 成功:魅族mx4,华为测过3款,型号记不得了,红米not4x,红米not3,还有几款也没注意型号,2333

  • 失败:魅蓝note1,问过技术人员,魅族建议flyme5和6测试。支持flyme4,但是不保证成功,华为mate7。

###6.推送版本号

魅族:3.4.2

华为:V2705

小米:3_4_5

2017年9月26号的最新版本

###7.官方支持

*华为:

各版本emui对华为push的支持

华为移动服务2.5.2.300,emui不同版本到达率不同

Emui3.0上,Push广播有很大概率被限制,如: Mate7 3.0版本,荣耀6plus,P7 3.0版本,4X, 4A等。

Emui3.1上,Push广播基本不被限制,但个别型号机型存在问题,如:荣耀5x等。

Emui4.0及以上,Push广播有较高概率被限制,不被限制的机型如:荣耀畅玩4C,荣耀畅玩4X,Mate S,P8 MAX等。

Emui4.1 , ROM升级到了最新版本的(80%已升),通知消息不走广播,不会被限制,透传消息走广播,会被限制。

Emui5.0以上 ,通知消息不走广播,不会被限制,透传消息走广播,会被限制

解决方法开启应用相关权限。

About

集成小米,华为,魅族推送,大幅度提高推送到达率


Languages

Language:Java 100.0%