融云通知栏push和onReceived重复解决方案
融云通知栏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重复解决方案相关推荐
- 融云亮相 CDEC2021 上海站 全场景通信能力赋能企业数字升级
4 月 22 日,由海比研究院.中国软件行业协会等支持,中国软件网主办的 CDEC2021中国数字智能生态大会暨第十四届中国软件渠道大会上海站活动,盛大召开. 融云与上海本地数百家ISV.SI.渠道商 ...
- 融云服务器实时消息路由,IM 北极星产品功能介绍
IM 北极星 概述 IM 北极星主要为开发者提供了终端用户连接及消息发送状态查询功能:通过查看用户的连接日志,判断用户某时间段内是否可以正常使用融云服务,如:用户反馈消息发送不成功,可能是因为该用户在 ...
- 融云直播 SDK 2.0 上线,轻松获得视频直播能力
近日,融云直播 SDK 2.0 正式上线.开发者通过调用贴近直播业务的 API,两步即可为自己的 APP 添加视频直播能力. 同时,在连麦互动成为直播业务必备能力的当下,融云直播 SDK 2.0 封装 ...
- 艾瑞发布《2021 年全球互联网通信云行业研究报告》,融云持续领跑市场
2021 年,预计全年全球互联网通信云市场将实现 59.2% 的同比增长.基础设施的完善,叠加 5G.物联网等技术的发展,全球互联网通信云市场将迎来新增长,预计到 2024 年全球市场规模将达 182 ...
- 融云洞察:打造社交元宇宙,从「读懂 00 后」开始
没有一个人能活着走出"00 后"黑话.关注[融云全球互联网通信云]了解更多 yyds.xswl.zqsg 作为传播比较广泛的缩写,或许稍微上网冲冲浪就能 get 到.那么,cqy. ...
- IM、RTC技术两生花,看融云如何打造“IM+RTC+Push”一站式通信云服务
11月9日,融云宣布完成数亿元人民币的D轮融资.从李佳琦和明星扎堆的电商直播,到疫情期间在线教育的全面普及,再到5G技术进入商用,实时音视频技术(Real-Time Communication,以下简 ...
- android融云自定义消息界面大小,融云自定义消息通知栏显示
融云自定义消息通知栏显示 第一步 首先要注册个自定义的广播,代码如下: public classCharNotificationReceiverextendsPushMessageReceiver { ...
- 融云获亿元B轮融资 重磅发布企业即时通讯解决方案
6月28日,全球富媒体通讯云服务提供商--融云(公司全称:北京云中融信网络科技有限公司)在北京举办了"Run With You 与你同行"融云即时通讯云发布会.在此次发布会现场,融 ...
- 「融云政企数智办公解决方案」入选「大信创产品目录」
1月31日,CIO 时代.新基建创新研究院联合公布"大信创产品目录","融云政企数智办公解决方案"成功通过审核,被正式纳入"大信创产品目录" ...
最新文章
- python单词大全-学Python必须背的42个常见单词
- 元素加了position:absolute则该元素的text-align:center居中失效的解决办法
- CSS定位总结:position=static/relative/absolute/fixed时的区别、top/bottom/left/right与margin外边距的运用
- vc中关于 directx的配置,和dxsdk_extras(directshow)
- 列举python中可变数据类型_python 可变数据类型 和 不可变数据类型
- django 1.8 官方文档翻译: 2-6-3 提供初始数据
- WiFi 6 目前还不适合个人用户
- go中的make和new的区别
- vue3.0 word导出
- C语言控制台窗口图形界面编程(六):光标操作
- 【Python】学习笔记2-数据类型:数组、数组循环切片
- 编译」(compile),与「反编译」(decompile)..哪些语言容易被反编译.
- 基于七牛播放器的直播
- pdg转pdf的正确方法!!
- 【Java入门基础第6天】六款Java常用的开发工具 废话少说-上号
- PyAudio模块的基本使用,阻塞式/非阻塞式地录制/播放音频
- 【SOLIDWORKS学习笔记】工程图基础操作
- 走全渠道电商O2O模式的优势体现在哪些地方?
- 去掉linux 打印信息
- JDBC规范——(3)新特性
热门文章
- 双十二护眼灯牌子买什么的好?几款比较好的学生护眼灯推荐
- 用C语言编程网上购物系统,华中科技大学C语言课程设计报告 -- 网上购物管理系统.pdf...
- 云计算有什么用?云计算的应用领域有多大?
- linux网络摄像头服务器,网络摄像头Logitech和Linux
- 企业大数据战略规划高级培训课程
- qfile超过下载文件容量_如何下载视频网站上的视频,这里有方法
- [传奇II]道士攻略(1--20级)
- OpenCV读取灰度图像
- 直播App架构及思维导图
- 蚂蚁全媒体中心刘鑫炜:有什么好的网站可以为自己树立品牌形象?