如何实现推送提醒的红点或数字角标展示?

融云IM即时通讯
• 阅读 603

融云不维护应用角标数量,融云 SDK 不支持控制角标展示。本文仅描述与厂商推送通知相关的角标控制实现。

很多开发者都希望可以在应用桌面开启角标或者小红点,以达到更好的提醒效果。推送厂商对此功能的开放程度不一,详见下表:

推送厂商 是否支持角标/红点 是否需要配置 适配说明 华为 支持角标 是 请参考下文华为推送角标适配说明 。 华为 支持角标 是 请参考下文荣耀推送角标适配说明 。 小米 支持角标 否 遵从系统默认逻辑。小米 MIUI 6 及以上设备支持数字角标,由小米系统自动处理数字角标展示功能。感应通知栏通知数目,按 1 自动增减,打开 App 清零。 OPPO 支持红点 否 圆点展示需由用户在通知设置中手动开启,遵从系统默认逻辑,有通知则展示,无则不展示;数值展示只对指定应用开启,例如 QQ、微信,需向官方进行权限申请,暂无明确适配说明。 vivo 不支持 - 融云仅支持 vivo 的通知栏消息,但 vivo 的通知栏消息并不支持角标显示。 魅族 支持红点 否 遵从系统默认逻辑,仅支持红点展示,有通知则展示,无则不展示 iOS 支持角标 否 客户端发送消息不支持控制角标。通过服务端 API 发送单聊消息,或直接发送远程推送时支持设置角标数字。 华为推送角标适配说明 使用限制 华为手机角标展示支持 EMUI 8.0 及以上手机。 受限于华为手机角标能力的开放程度,在不同的推送场景下角标功能有所不同,详见下表。

推送形式 华为的角标能力 融云支持能力及实现方式 通知栏消息 支持角标自动加 1、直接设置或不变,支持通知点击的自动减 1,不支持通知清除的自动减 1 支持配置推送触发角标自动加 1 或不变,不支持直接设置。您可以在开发者后台配置 badgeAddNum(对应华为的 add_num 2),暂不支持华为的 set_num。 透传消息(融云已下线该能力) 开发者自行处理设置、加减逻辑。 融云不支持透传方式的华为推送(该能力已下线,部分老客户可自行调用 HMS SDK 开放接口。) 配置说明 开发者后台设置 打开融云开发者后台 2,在应用标识 4页面点击设置推送 ,找到 Android > 华为推送 ,点击编辑配置应用入口 Activity 类。注意必须是应用入口 Activity 类,否则无法显示角标。

如果设置 badgeAddNum(角标数字累加值),可在原角标的基础上进行累加。例如,badgeAddNum 取值为 1,原角标数为 2,发送消息后,应用角标数显示为 3。

如何实现推送提醒的红点或数字角标展示? 应用内角标设置权限申请 为能实现角标修改的正确效果,请首先为应用添加华为手机上的角标读写权限,具体实现为在应用 AndroidManifest.xml 文件的 manifest 标签下添加以下权限配置:

华为手机终端设置角标自增减 华为手机支持角标自动增减 1(负数为减,正数为增),需要在客户端通过代码实现,示例如下:

Bundle extra = new Bundle(); extra.putString("package", "xxxxxx"); extra.putString("class", "yyyyyyy"); extra.putInt("badgenumber", i); context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra); 清除角标 打开应用或者点击、清理通知栏消息并不会清理角标数字或圆点,需开发者自行设置清理角标,详情请参见桌面角标开发指导 14。

荣耀推送角标适配说明 配置说明 开发者后台设置 打开融云开发者后台 2,在应用标识 4页面点击设置推送 ,找到 Android > 荣耀推送 ,点击编辑配置应用入口 Activity 类。注意必须是应用入口 Activity 类,否则无法显示角标。

如果设置 badgeAddNum(角标数字累加值),可在原角标的基础上进行累加。例如,badgeAddNum 取值为 1,原角标数为 2,发送消息后,应用角标数显示为 3。

如何实现推送提醒的红点或数字角标展示? 清除角标 打开应用或者点击、清理通知栏消息并不会清理角标数字或圆点,需开发者自行设置清理角标。

boolean mIsSupportedBadge = true; public void setBadgeNum(int num) { try { Bundle bundle = new Bundle(); bundle.putString("package", "cn.rongcloud.im"); // com.test.badge is your package name bundle.putString("class", "cn.rongcloud.im.ui.activity.SplashActivity"); // com.test. badge.MainActivity is your apk main activity bundle.putInt("badgenumber", num); this.getContentResolver().call(Uri.parse("content://com.hihonor.android.launcher.settings/badge/"), "change_badge", null, bundle); } catch (Exception e) { mIsSupportedBadge = false; } }

int num = 0; //Application public void onCreate() { if (mIsSupportedBadge) { setBadgeNum(num); } } iOS 角标 开发者后台配置 融云支持从开发者后台配置 iOS 不显示角标数。前往 融云开发者后台,点击 应用标识 并找到当前需要集成的项目,然后点击 设置推送 。如果未创建可点击 添加 。

如何实现推送提醒的红点或数字角标展示? 服务端 API 使用服务端 API 发送单聊消息 5时,可设置 count 参数。

使用 /push.json 接口时,需要在 notification.ios.badge 字段下设置角标值。

发送全量用户不落地通知 4 发送标签用户通知 1 发送应用包名通知 1 发送指定用户不落地通知 2 清除角标 点击通知时,客户端需要调用原生接口 setApplicationIconBadgeNumber 清除本地角标显示值。

  • (void)applicationWillEnterForeground:(UIApplication *)application { [application setApplicationIconBadgeNumber:0]; [application cancelAllLocalNotifications]; }
点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
typeScript数据类型
//布尔类型letisDone:booleanfalse;//数字类型所有数字都是浮点数numberletdecLiteral:number6;lethexLiteral:number0xf00d;letbinaryLiteral:number0b101
Stella981 Stella981
3年前
IOS推送消息怎么实现icon图标的数字累加
IOS推送消息怎么实现icon图标的数字累加(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.cnblogs.com%2Fqiqibo%2Farchive%2F2012%2F08%2F26%2F2657379.html)
Stella981 Stella981
3年前
Android Icon数字角标Badge的实现方式
Android系统小米,三星,索尼手机发送桌面快键提醒数字图标,在Android系统中,众所周知不支持BadgeNumber,虽然第三方控件BadgeView可以实现应用内的数字提醒,但对于系统的图标,特别是app的logo图标很难实现数字标志,即使是绘图的方式不断修改,但这种方式天生弊端,实用性很差。但幸运的是,某些ROM厂商提供了私有的API,但也带来
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
JVM 字节码指令表
字节码助记符指令含义0x00nop什么都不做0x01aconst\_null将null推送至栈顶0x02iconst\_m1将int型1推送至栈顶0x03iconst\_0将int型0推送至栈顶0x04iconst\_1将int型1推送至栈顶0x05ic
Stella981 Stella981
3年前
Android UI:机智的远程动态更新策略
腾讯Bugly特约作者:王金波问题描述做过Android开发的人都遇到过这样的问题:随着需求的变化,某些入口界面通常会出现UI的增加、减少、内容变化、以及跳转界面发生变化等问题。每次发生变化都要手动修改代码,而入口界面通常具有未读信息提醒这样的“小红点”逻辑;一旦UI变化,“小红点”逻辑也要重新计算。如果不同的RD来维护
Stella981 Stella981
3年前
Easypush微信消息推送——打破传统的消息推送方式
通过使用EasyPush实现信息推送官网:https://easypush.baigekeji.com/Easypush从1.1.0(发行版)开始,进行行业模块分析,致力于高效下服务消息推送,将原先常见的推送开发模式统一封装,实现多种推送方式,目前仍在不断研发,在提服务提醒领域更加智能化(不定时更新)
马尚 马尚
8个月前
使用OpenCV和Tesseract识别英文数字验证码
在这个项目中,我们将展示如何使用OpenCV和Tesseract来识别英文数字验证码。验证码是一种常见的安全措施,用于防止机器人或恶意软件的访问。英文数字验证码通常包含了随机生成的字母和数字,我们将利用OpenCV进行图像处理,并使用Tesseract来进
融云IM即时通讯 融云IM即时通讯
1个月前
融云IM干货丨如果用户不在线,推送通知会怎样处理?
如果用户不在线,融云的推送通知会按照以下方式处理:离线消息推送:当用户不在线时,融云会将收到的单聊消息、群聊消息、系统消息、超级群消息通过第三方推送厂商或融云自建的推送服务通知客户端。这意味着即使用户的应用没有运行,他们也能通过系统通知栏接收到消息提醒。服
融云IM即时通讯 融云IM即时通讯
1个月前
融云IM干货丨推送通知自定义在不同设备上的兼容性问题如何处理?
处理推送通知自定义在不同设备上的兼容性问题,可以采取以下策略:1.适配不同Android版本Android8.0以上版本:使用NotificationChannel来创建通知渠道,并设置通知的属性,如灯光颜色、是否显示角标、震动模式等。Android8.0
融云IM即时通讯
融云IM即时通讯
Lv1
北京云中融信网络科技有限公司(简称“融云”),是全球互联网通信云服务领创品牌。2014 年由创下亿级日活神话的“飞信”核心团队组建而成,依托沉淀近 20 年的领先技术基因,开创性地将通信技术封装为 SDK 提供给开发者和企业用户,大幅降低了行业对通信功能开发的难度和成本。 自成立以来,融云专注于向开发者和企业提供专业、简单、稳定的即时通讯和实时音视频 PaaS 服务。凭借产品、技术、服务等多方面优势,融云收获了超 80 万开发者和 2200+ 国家政府机关、企事业单位的青睐,支撑起 155 万+ 应用的通信需求,覆盖社交、娱乐、游戏、教育、电商、医疗等各行业场景,并打造出一系列中企出海最佳实践案例。 在全球范围内,融云构建了一张覆盖 245 个国家及地区的通信云网络,设立了多个海外数据中心以及数千加速节点,稳定互联,确保跨地域通信体验更加流畅。基于客户业务需求,融云可提供公有云、私有云、混合云等多种部署模式。 权威咨询机构“艾瑞咨询”数据报告显示,融云即时通讯云市场份额已连续多年稳居第一。
文章
184
粉丝
0
获赞
0