融云通知栏push和onReceived重复解决方案

业务需求

根据系统推送过来的信息内容跳到特定页面

吐槽,吐槽,吐槽

1.通知栏的显示可以有两个通道内容来控制
2.点完push的信息,进应用后onReceived还会再收到一条同样的内容,如果这时要处理你自己的跳转,就坑了。就算不点进来,你直接点桌面的应用,也会同样的问题
3.onNotificationMessageClicked()方法中的message内容,push的内容和onReceived的内容还不一样,但是它点击都经过这方法。message.getPushData()内容是不一样的,控制跳转内容又存在getPushData()里面
4.onNotificationMessageArrived()不是每条push信息来都调用,还分手机的。照道理通知栏内容你都能封装上去。这里就没法弄?一定要开启自启动权限…
5.每次问问题都叫我看demo,能看出来就不用问你了啊

暂时的解决方案

基本知识:return true 就不会弹通知栏
基本思路:
1、push过的信息onReceived就不处理
2、刚启动应用onReceived不处理信息
3、用SP来存储数据,最好结合接口给唯一值

部分代码

SealNotificationReceiver

@Override
public boolean onNotificationMessageArrived(Context context, PushNotificationMessage message) {String transactionId;if (null != message.getPushData() && Utils.isJson(message.getPushData())) {try {JSONObject object = new JSONObject(message.getPushData());transactionId = object.isNull("transactionId") ? "" : object.getString("transactionId");if(!TextUtils.isEmpty(transactionId)){//保存push过来的id,唯一值,在onRecevied会用到SPInfo.saveNodeNotificationId(context,transactionId);}} catch (JSONException e) {e.printStackTrace();}}return false;
}@Override
public boolean onNotificationMessageClicked(Context context, PushNotificationMessage message) {LogUtils.i("pushExtra", "onNotificationMessageClicked" + "\t" + message.getTargetId() + "\t" + message.getExtra() + "\t" + message.getPushContent() + "\t" + message.getPushData() +"\t"+message.getPushId());String transactionId;if (null != message.getPushData() && Utils.isJson(message.getPushData())) {try {JSONObject object = new JSONObject(message.getPushData());transactionId = object.isNull("transactionId") ? "" : object.getString("transactionId");//点击中也添加,防止onNotificationMessageArrived没调if(&& !TextUtils.isEmpty(transactionId)){SPInfo.saveNodeNotificationId(context,transactionId);}} catch (JSONException e) {e.printStackTrace();}}

**在onReceived()中
jump为false会走融云默认处理方式,为true自己处理**

//设置跳转if((null != SPInfo.getNodeNotificationIds(mContext) && !SPInfo.getNodeNotificationIds(mContext).isEmpty()&& SPInfo.getNodeNotificationIds(mContext).contains(transactionId)) || SPUtils.getBoolean(mContext,SPKey.START_APP_FLAG,false)){LogUtils.i("spNodes",SPInfo.getNodeNotificationIds(mContext).toString());//通知栏通过push已经有,返回true不处理,消除本地记录id//或者刚启动应用,返回true不处理jump = true;SPInfo.cleanNodeNotificationId(mContext,transactionId);SPUtils.saveBoolean(mContext, SPKey.START_APP_FLAG,false);} else {jump = setJump(app_node,tm.getContent());}

差不多就解决了,只是暂时的解决方案。主要是思路,思路,思路

有问题或者更好的解决方案,加我Q:893151960

融云通知栏push和onReceived重复解决方案相关推荐

  1. 融云亮相 CDEC2021 上海站 全场景通信能力赋能企业数字升级

    4 月 22 日,由海比研究院.中国软件行业协会等支持,中国软件网主办的 CDEC2021中国数字智能生态大会暨第十四届中国软件渠道大会上海站活动,盛大召开. 融云与上海本地数百家ISV.SI.渠道商 ...

  2. 融云服务器实时消息路由,IM 北极星产品功能介绍

    IM 北极星 概述 IM 北极星主要为开发者提供了终端用户连接及消息发送状态查询功能:通过查看用户的连接日志,判断用户某时间段内是否可以正常使用融云服务,如:用户反馈消息发送不成功,可能是因为该用户在 ...

  3. 融云直播 SDK 2.0 上线,轻松获得视频直播能力

    近日,融云直播 SDK 2.0 正式上线.开发者通过调用贴近直播业务的 API,两步即可为自己的 APP 添加视频直播能力. 同时,在连麦互动成为直播业务必备能力的当下,融云直播 SDK 2.0 封装 ...

  4. 艾瑞发布《2021 年全球互联网通信云行业研究报告》,融云持续领跑市场

    2021 年,预计全年全球互联网通信云市场将实现 59.2% 的同比增长.基础设施的完善,叠加 5G.物联网等技术的发展,全球互联网通信云市场将迎来新增长,预计到 2024 年全球市场规模将达 182 ...

  5. 融云洞察:打造社交元宇宙,从「读懂 00 后」开始

    没有一个人能活着走出"00 后"黑话.关注[融云全球互联网通信云]了解更多 yyds.xswl.zqsg 作为传播比较广泛的缩写,或许稍微上网冲冲浪就能 get 到.那么,cqy. ...

  6. IM、RTC技术两生花,看融云如何打造“IM+RTC+Push”一站式通信云服务

    11月9日,融云宣布完成数亿元人民币的D轮融资.从李佳琦和明星扎堆的电商直播,到疫情期间在线教育的全面普及,再到5G技术进入商用,实时音视频技术(Real-Time Communication,以下简 ...

  7. android融云自定义消息界面大小,融云自定义消息通知栏显示

    融云自定义消息通知栏显示 第一步 首先要注册个自定义的广播,代码如下: public classCharNotificationReceiverextendsPushMessageReceiver { ...

  8. 融云获亿元B轮融资 重磅发布企业即时通讯解决方案

    6月28日,全球富媒体通讯云服务提供商--融云(公司全称:北京云中融信网络科技有限公司)在北京举办了"Run With You 与你同行"融云即时通讯云发布会.在此次发布会现场,融 ...

  9. 「融云政企数智办公解决方案」入选「大信创产品目录」

    1月31日,CIO 时代.新基建创新研究院联合公布"大信创产品目录","融云政企数智办公解决方案"成功通过审核,被正式纳入"大信创产品目录" ...

最新文章

  1. python单词大全-学Python必须背的42个常见单词
  2. 元素加了position:absolute则该元素的text-align:center居中失效的解决办法
  3. CSS定位总结:position=static/relative/absolute/fixed时的区别、top/bottom/left/right与margin外边距的运用
  4. vc中关于 directx的配置,和dxsdk_extras(directshow)
  5. 列举python中可变数据类型_python 可变数据类型 和 不可变数据类型
  6. django 1.8 官方文档翻译: 2-6-3 提供初始数据
  7. WiFi 6 目前还不适合个人用户
  8. go中的make和new的区别
  9. vue3.0 word导出
  10. C语言控制台窗口图形界面编程(六):光标操作
  11. 【Python】学习笔记2-数据类型:数组、数组循环切片
  12. 编译」(compile),与「反编译」(decompile)..哪些语言容易被反编译.
  13. 基于七牛播放器的直播
  14. pdg转pdf的正确方法!!
  15. 【Java入门基础第6天】六款Java常用的开发工具 废话少说-上号
  16. PyAudio模块的基本使用,阻塞式/非阻塞式地录制/播放音频
  17. 【SOLIDWORKS学习笔记】工程图基础操作
  18. 走全渠道电商O2O模式的优势体现在哪些地方?
  19. 去掉linux 打印信息
  20. JDBC规范——(3)新特性

热门文章

  1. 双十二护眼灯牌子买什么的好?几款比较好的学生护眼灯推荐
  2. 用C语言编程网上购物系统,华中科技大学C语言课程设计报告 -- 网上购物管理系统.pdf...
  3. 云计算有什么用?云计算的应用领域有多大?
  4. linux网络摄像头服务器,网络摄像头Logitech和Linux
  5. 企业大数据战略规划高级培训课程
  6. qfile超过下载文件容量_如何下载视频网站上的视频,这里有方法
  7. [传奇II]道士攻略(1--20级)
  8. OpenCV读取灰度图像
  9. 直播App架构及思维导图
  10. 蚂蚁全媒体中心刘鑫炜:有什么好的网站可以为自己树立品牌形象?