App上看到就忍不住点的小红点是如何实现的?
你有没有发现,我们解锁手机后桌面上App右上角总能看到一个小红点,这就是推送角标。推送角标指的是移动设备上App图标右上角的红色圆圈,圆圈内的白色数字表示未读消息数量。角标是一种比较轻的提醒方式,通过直观的展现用户尚未阅读的信息数量,可以给用户营造一种紧张感,激起用户阅读的好奇心,从而让用户忍不住点开。因此在使用得当的情况下,推送角标有助于提高App推送打开率,保持用户粘性。

HMS Core推送服务提供了设置桌面角标的API接口,开发者可以在消息中封装角标参数。那这个“小红点”功能是如何实现的呢?以下是详细的集成步骤。
一.客户端API设置华为推送角标
支持平台:
1.系统版本:EMUI4.1 及以上
2.桌面版本:6.3.29
3.支持设备:华为设备
角标功能开发:
- 声明权限
< uses - permission android: name = "android.permission.INTERNET" / >
<
uses - permission android: name =
"com.huawei.android.launcher.permission.CHANGE_BADGE " / >
- 在需要进行角标显示地方,采用如下方法传递数据给华为桌面应用。
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);
关键参数说明:
package:应用包名
class:桌面图标对应的应用入口Activity类
badgenumber:角标数字
boolean mIsSupportedBade = true;
if (mIsSupportedBade) {
setBadgeNum(num);
}
/** set badge number*/
public void setBadgeNum(int num) {
try {
Bundle bunlde = new Bundle();
// com.test.badge is your package name
bunlde.putString("package", "com.test.badge");
// com.test. badge.MainActivity is your apk main activity
bunlde.putString("class", "com.test. badge.MainActivity");
bunlde.putInt("badgenumber", num);
this.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, bunlde);
} catch (Exception e) {
mIsSupportedBade = false;
}
}
特殊情形考虑:
(1)对于第三应用打开和退出时,是否还继续显示角标取决于应用传递的值(badgenumber为0时,不显示角标;badgenumber大于0时,显示角标)。
(2)当第三方应用package和class发生变化时,需传递该变化后的信息。
(3)在调用角标接口前不一定要事先获取桌面是否支持角标功能此功能。当桌面不支持角标功能时,接口会抛出异常,应用可以在调用接口的地方加上try … catch(Exception e) 语句以免程序崩溃。
二.HMS Core推送服务sdk桌面角标设置
Push Kit发送下行消息接口中由BadgeNotification的三个参数决定了角标是否显示以及显示的数量:

在设置时需要注意以下5点:
1.class字段应用包名+应用入口Activity类名,如果传错角标则无法展示
2.add_num字段要求emui版本8.0.0以上,推送服务版本8.0.0
3.set_num字段要求emui版本10.0.0以上,推送服务版本10.1.0
4.打开应用或者点击、清理通知栏消息并不会清理角标数,需应用在端侧参考角标开发指导去清理角标。
- “class“必填,“add_num”和”set_num”参数选填。
若“add_num”和“set_num”都设置为空,则应用角标数字默认加1
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
App上看到就忍不住点的小红点是如何实现的?的更多相关文章
- app上传到App Store的快捷方法及步骤
跳过证书的申请及配置概要文件的设置, 现在根据已有的配置概要文件及发布证书开始: 1.先在Xcode上的PROJECT和TARGETS->Build Setting->Code Signi ...
- iOS app上传错误集锦(转载)
1.工程里增加了版本自动更新. 2.未增加判断网络状态的类Reachability. 3.问题:error itms -90049 This bundel is invalid. The bundle ...
- 关于app上页面和js的调试
不久前折腾了一晚上关于app上的页面和js的调试: 首先得准备几个比较比较常用的工具: 1.chrome(这个都没有你还干啥fe呀) 2.Fiddler(抓包神器,基本也是必备咯) 3.sublime ...
- 实现app上对csdn的文章查看,以及文章中图片的保存 (制作csdn app 完结篇)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24022165 今天给大家带来CSDN的完结篇,即增加文章的查看和文章中图片的保存 ...
- jQuery模拟原生态App上拉刷新下拉加载
jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用. <!doctype html> <html ...
- 实现app上对csdn的文章列表上拉刷新下拉加载以及加入缓存文章列表的功能 (制作csdn app 四)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23698511 今天继续对我们的csdn客户端未完成的功能进行实现,本篇博客接着客 ...
- ios - 如何获取app上的数据
做过ios开发的人应该都用过Charles,通常叫它花瓶.Charles是Mac下常用的对网络流量进行分析的工具,类似于Windows下的Fiddler.在开发iOS程序的时候,往往需要调试客户端和服 ...
- Ios App上传步骤
前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...
- IOS APP 上传到AppStore
由于第一次接触要把 app 上传到 AppStore 比较棘手,很多地方不懂,研究了 大半天 终于给上传成功了,现在坐等审核吧,首先把上传到AppStore的流程 整理下 : 第一 :准备证书 (要确 ...
随机推荐
- HashMap和ConcurrentHashMap的原理和实现
一.线程不安全的HashMap 多线程环境下,使用HashMap进行put操作会引起死循环(jdk1.7 Entry链表形成环形数据结构),导致CPU利用率接近100%. 结构:数组 table[]+ ...
- rem,px,em最大的区别;
px:px像素(Pixel).相对长度单位.像素px是相对于显示器屏幕分辨率而言的.移动端的分辨率很多.所以px不适用移动端em:em的值不固定:其长度继承父级元素的字体大小rem:相对于根元素htm ...
- MAUI VS Preview 2.1 win 下无法调试ios, 目前无解
Microsoft Visual Studio Community 2022 (64 位) - Preview 版本 17.2.0 Preview 2.1 报错 严重性 代码 说明 项目 文件 行 禁 ...
- 时间篇之centos6下修复的ntp操作(ntpd和ntpdate两个服务区别)
系统采样,本采样和命令都是在centos6.4的系统中进行 主要比较centos7和centos6之间的差异,因为大部分都开始采用centos7但是有些老系统还采用centos6,这样我们就需要熟悉c ...
- Java-GUI编程之菜单组件
前面讲解了如果构建GUI界面,其实就是把一些GUI的组件,按照一定的布局放入到容器中展示就可以了.在实际开发中,除了主界面,还有一类比较重要的内容就是菜单相关组件,可以通过菜单相关组件很方便的使用特定 ...
- 帝国CMS 后台登录空白
编辑/e/config/config.php中 $ecms_config['esafe']['ckfromurl']=0; //是否启用来源地址验证,0为不验证,1为全部验证,2为后台验证,3为前台验 ...
- 深入理解Kafka核心设计及原理(五):消息存储
转载请注明出处:https://www.cnblogs.com/zjdxr-up/p/16127749.html 目录: 5.1文件目录布局 5.2消息压缩 5.3日志索引 5.4日志文件及索引文件分 ...
- eBPF Cilium实战(2) - 底层网络可观测性
在之前的平台中,对于组件之间的网络流向不具备直接的可观测性,用户组件间通信出现问题,只能通过传统命令行工具进行手动排查,而 cilium 的 Hubble 服务可以提供 UI 界面向用户展示实时的流量 ...
- 可怕!CPU暗藏了这些未公开的指令!
大家好,我是轩辕. 我们知道,我们平时编程写的高级语言,是经过编译器编译以后,变成了CPU可以执行的机器指令: 而CPU能支持的指令,都在它的指令集里面了. 很久以来,我都在思考一个问题: CPU有没 ...
- OSPF MTU问题
OSFP(开放式最短路径优先)链路状态协议,IGP 1.mtu 检测 链路俩段不匹配 假设双方的mtu不一致时 ospf建立如下: R1与R2交互hello报文,其中包含:目的IP地址:224.0.0 ...