信鸽推送踩坑

作者: 欢子3824 | 来源:发表于2017-12-28 17:23 被阅读2061次

最近项目中用到了信鸽推送,特来分享一些踩坑经验。目前信鸽的推送有2种设置方式,1是信鸽推荐的:在下发消息的时候设置点击消息要跳转的页面;2是在app里判断,再进行分发。这里主要说说第2种。

Intent intent = newIntent(context,Ac_Balance.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

就在我以为万事大吉的时候,神奇的事情发生了,跳转到指定界面后,紧接着又跳回首页了。

纳尼???

去翻了翻官方文档,文档里是这样说的:

由于目前sdk点击 消息默认会有点击事件,默认的点击事件是打开主界面。所以在终端点击消息回调onNotifactionClickedResult方法内,设置跳转操作,自定义的跳转和默认的点击事件造成冲突。反应情况是会跳转到指定界面过后再回到主界面。所以不能再onNotifactionClickedResult内设置跳转。

不过这难不倒我们万能的程序猿,百度大法加上一系列尝试,还是解决了这个奇葩的问题,代码如下。

思路是这样,点击通知栏统一跳转至开屏页,然后在开屏页做分发。

首先,拿到数据,跳转至开屏页

Intent intent = newIntent(context, Ac_Splash.class);

           intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

           if(xgPushModel != null) {

               intent.putExtra("jump_type", xgPushModel.getJump_type());

           } else{

                intent.putExtra("jump_type", "");

           }

           context.startActivity(intent);

然后,需要判断是不是点击信鸽的推送消息进来的,请注意,这段代码要放在oncreate 方法中

XGPushClickedResult message = XGPushManager.onActivityStarted(this);

       if(message != null) {

             if(isTaskRoot()) {

               return;

           }

           // 如果有面板存在则关闭当前的面板

           finish();

       }

最后,是做分发。

switch(jump_type) {

           case"pay":

                        //我的OH币

                       intent.setClass(context, Ac_Balance.class);

                       break;

          case"index":

                       //首页

                       intent.setClass(context, Ac_Main.class);

                       break;

          case"invite_reward":

                       //邀请奖励

                       intent.setClass(context, Ac_Invite.class);

                       break;

           case"activity":

                       //活动消息

                       intent.setClass(context, Ac_Message.class);

                       break;

            default:

                       //平台消息

                       intent.setClass(context, Ac_Message.class);

                       intent.putExtra("index", 1);

                       break;

               }

你的认可,是我坚持更新博客的动力,如果觉得有用,就请点个赞,谢谢

相关文章

  • 信鸽推送踩坑

    最近项目中用到了信鸽推送,特来分享一些踩坑经验。目前信鸽的推送有2种设置方式,1是信鸽推荐的:在下发消息的时候设置...

  • 信鸽推送 坑

    我们只是使用了notify这一种,就是通知栏推送 1.点击通知栏推送每次都重启,这是不能接受的 仔细查看官方文档,...

  • 信鸽推送(iOS)踩过的坑

    第一次独立接入推送,有一些理解上的错误,特此备注一下。 信鸽文档写的还是很明确的,按照文档基本上没有什么问题,但是...

  • iOS 腾讯信鸽推送——证书,代码,AppDelegate里面创

    公司新项目包含通知功能,领导要求使用信鸽推送,因为之前使用的不是信鸽推送,所以也是在这个上面遇到了一些小坑,特此记...

  • 腾讯信鸽Android推送集成全解

    Android开发中集成信鸽推送还是比较简单的,但是遇到了坑就麻烦 [TOC] 先介绍一下集成信鸽推送的步骤 1....

  • 信鸽推送

    接手一个项目用的是信鸽推送,但是没有实现业务跳转,所以要完善下。一开始使用的信鸽SDK是2.5.0的版本,研究了下...

  • 记一次信鸽推送的坑

    最近接手项目推送这一块的东西,接的信鸽推送,之前的开发在跟后台的调试时没有确定好推送消息类型,结果就出现坑了!! ...

  • 信鸽推送IOS证书配置

    本文主要介绍信鸽IOS证书配置的整个流程信鸽推送已升级腾讯推送,本文已陈旧,仅供参考 信鸽[https://xg....

  • iOS推送踩坑

    需求 app收到推送,点击推送消息进入指定页面,常用做法是在didReceiveRemoteNotificatio...

  • 常见框架介绍

    1.5小米push,信鸽push 信鸽推送腾讯出品,王者荣耀推送也是用此可见其强大。 1.6 shareSDK,友...

网友评论

    本文标题:信鸽推送踩坑

    本文链接:https://www.haomeiwen.com/subject/bwpvgxtx.html