信鸽推送踩坑

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

最近项目中用到了信鸽推送,特来分享一些踩坑经验。目前信鸽的推送有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;

               }


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

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
前端开发 机器人 Swift
订阅服务:GitHub 开源库更新提醒
订阅服务:GitHub 开源库更新提醒
1543 0
订阅服务:GitHub 开源库更新提醒
|
1月前
|
开发工具 git Python
代码管理记录(二):Github代码上传实操
本文是关于如何使用Git将本地代码上传到GitHub的实操指南。介绍了Git的基本概念、安装方法,并通过详细的步骤指导用户从GitHub创建仓库到使用Git命令初始化、添加、提交代码,最终将代码推送到远程仓库。同时,还汇总了一些常见的错误及其解决方法。
38 2
代码管理记录(二):Github代码上传实操
|
30天前
|
程序员
后续来了,GitHub 这样处理这件事
我在去年八月份给 GitHub 写信,举报了一个滥用「Used by」特性的事件,GitHub 一直没有给我回信。但是实际上,他们已经悄悄地更新了。
30 0
|
3月前
|
机器人 Go 数据格式
[golang]推送钉钉机器人消息
[golang]推送钉钉机器人消息
|
6月前
|
Shell 开发工具 git
【gitee推送项目流程】
【gitee推送项目流程】
46 0
|
API
分享一次我github被封的经历以及迁移指南
分享一次我github被封的经历以及迁移指南
408 0
|
存储 开发工具 git
二十四.SpringCloudConfig源码-配置拉取流程
这篇文章是接上一篇的,因为文章太长看起来太累,所以就分了一下
|
运维 Java 关系型数据库
spug上线服务踩坑记
spug是一款优秀的自动化运维平台, 这让我们想自动化又向前迈了一步.
559 0
|
Web App开发 缓存 移动开发
企微开发踩坑指南
企微开发踩坑指南
362 0
|
jenkins 机器人 Shell