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

HMS Core推送服务提供了设置桌面角标的API接口,开发者可以在消息中封装角标参数。那这个“小红点”功能是如何实现的呢?以下是详细的集成步骤。

一.客户端API设置华为推送角标

支持平台:

1.系统版本:EMUI4.1 及以上

2.桌面版本:6.3.29

3.支持设备:华为设备

角标功能开发:

  1. 声明权限
	< uses - permission android: name = "android.permission.INTERNET" / >
<
uses - permission android: name =
"com.huawei.android.launcher.permission.CHANGE_BADGE " / >
  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);

关键参数说明:

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.打开应用或者点击、清理通知栏消息并不会清理角标数,需应用在端侧参考角标开发指导去清理角标。

  1. “class“必填,“add_num”和”set_num”参数选填。

若“add_num”和“set_num”都设置为空,则应用角标数字默认加1

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

App上看到就忍不住点的小红点是如何实现的?的更多相关文章

  1. app上传到App Store的快捷方法及步骤

    跳过证书的申请及配置概要文件的设置, 现在根据已有的配置概要文件及发布证书开始: 1.先在Xcode上的PROJECT和TARGETS->Build Setting->Code Signi ...

  2. iOS app上传错误集锦(转载)

    1.工程里增加了版本自动更新. 2.未增加判断网络状态的类Reachability. 3.问题:error itms -90049 This bundel is invalid. The bundle ...

  3. 关于app上页面和js的调试

    不久前折腾了一晚上关于app上的页面和js的调试: 首先得准备几个比较比较常用的工具: 1.chrome(这个都没有你还干啥fe呀) 2.Fiddler(抓包神器,基本也是必备咯) 3.sublime ...

  4. 实现app上对csdn的文章查看,以及文章中图片的保存 (制作csdn app 完结篇)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24022165 今天给大家带来CSDN的完结篇,即增加文章的查看和文章中图片的保存 ...

  5. jQuery模拟原生态App上拉刷新下拉加载

    jQuery模拟原生态App上拉刷新下拉加载效果代码,鼠标上拉时会显示loading字样,并且会模拟加载一条静态数据,支持触屏设备使用. <!doctype html> <html ...

  6. 实现app上对csdn的文章列表上拉刷新下拉加载以及加入缓存文章列表的功能 (制作csdn app 四)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/23698511 今天继续对我们的csdn客户端未完成的功能进行实现,本篇博客接着客 ...

  7. ios - 如何获取app上的数据

    做过ios开发的人应该都用过Charles,通常叫它花瓶.Charles是Mac下常用的对网络流量进行分析的工具,类似于Windows下的Fiddler.在开发iOS程序的时候,往往需要调试客户端和服 ...

  8. Ios App上传步骤

    前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...

  9. IOS APP 上传到AppStore

    由于第一次接触要把 app 上传到 AppStore 比较棘手,很多地方不懂,研究了 大半天 终于给上传成功了,现在坐等审核吧,首先把上传到AppStore的流程 整理下 : 第一 :准备证书 (要确 ...

随机推荐

  1. CCF201903-2二十四点

    思路描述:最开始的思路是拿一个栈来存储数据和符号,在动手实践的过程中发现行不通,单个数字的char和int转换可以,但是加起来的数据两位数字就很难处理了. 然后就去看了看别人的思路,给了我一个很好的启 ...

  2. dotnet new 命令笔记

    让dotnet new使用平台特定的目标,例如net6.0-windows10.0.19041.0 dotnet new console --name CallWinRTConsole --frame ...

  3. eBPF+Ftrace 合璧剑指:no space left on device?

    本文地址:https://www.ebpf.top/post/no_space_left_on_devices 最近在生产环境中遇到了几次创建容器报错 "no space left on d ...

  4. 小程序 canvas 文字加粗

    在fillText前设置font属性 ctx.font = 'normal bold 18px sans-serif'; 但是有继承问题: 解决方法 - 1: 先绘制字体不加粗部分, 再绘制需要加粗部 ...

  5. Asynchronous Methods for Deep Reinforcement Learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! ICML 2016 Abstract 我们提出了一个概念上简单且轻量级的深度强化学习框架,该框架使用异步梯度下降来优化深度神经网络控制器. ...

  6. TexFormula2Word: 将Latex公式转换为MathML的Chrome扩展

    前言 因为学校要求对毕业论文进行格式检查,而格式检查又必须上传Word文件,这就导致只能使用Word写毕业论文.但Word公式输入实在是太难用,加之我在小论文中已经用Latex写过大部分公式,所以就希 ...

  7. 技术管理进阶——一线Leader怎么做?经理的速成宝典

    原创不易,求分享.求一键三连 本期培训材料关注公众号后回复:经理培训,获得 前段时间有个同学问我有没有一线Leader的速成培训课程,很好的问题,首先我们需要定义一下什么是小Leader: 所谓小Le ...

  8. Vim 中进行文本替换

    Vim 中进行文本替换 格式 用法 :[range]s/from/to/[flags] tips: [] 表示该内容可选 参数 from 需要替换的字符串(可以是正则表达式) to 替换后的字符串 r ...

  9. Envoy熔断限流实践(一)基于Rainbond插件实现熔断

    Envoy 可以作为 Sevice Mesh 微服务框架中的代理实现方案,Rainbond 内置的微服务框架同样基于 Envoy 实现.本文所描述的熔断实践基于 Rainbond 特有的插件机制实现. ...

  10. Windows下搭建redis 哨兵环境

    从 https://github.com/tporadowski/redis/releases 下载windows版的redis,自行下载解压. 关于哨兵模式的讲解,强烈推荐 [深入学习redis(4 ...