写点什么

【FAQ】HMS Core 推送服务推送角标的开发及常见问题解答

作者:HMS Core
  • 2023-09-05
    广东
  • 本文字数:1415 字

    阅读完需:约 5 分钟

目录

1、发送消息并显示桌面数字角标。


2、如何清除数字角标?


3、如何设置圆点角标?


4、应用桌面图标角标开关无法开启或未显示开关。


5、推送消息设置了角标字段但未显示角标?


6、未设置角标参数,但收到消息后显示了角标。

解决方案

Q1:发送消息并显示桌面数字角标。

实现设备收到消息后显示数字角标业务,需要在发送消息时设置角标 “badge”字段,请参考以下示例及说明。


消息体示例:


{    "validate_only": false,    "message": {        "android": {            "notification": {                "title": "test title",                "body": "test body",                "click_action": {                    "type": 3                },                "badge": {                    "add_num": 1,                    "class": "com.zrgj.push.activity.MainActivity",                    "set_num": 10                }            }        },        "token": ["pushtoken1"]    }}
复制代码

参数说明:

“add_num”:应用角标累加数字,在已有的角标数量上累加。参数为大于 0 小于 100 的整数。


“class”:设置角标路径,参数为应用入口 Activity 类的全路径。样例:com.example.hmstest.MainActivity


“set_num”:设置角标数字,指定角标为设置的数量。

注意事项:

“add_num”与“set_num”字段使用其一即可,如果同时设置以 set_num 为准。

Q2:如何清除数字角标?

数字角标和通知消息没有关联,打开应用或者点击、清理通知栏消息并不会清理角标数字或圆点,客户端可配合业务需求使用以下方法清除。

示例代码:

Bundle extra = new Bundle();extra.putString("package", "xxxxxx");//应用包名extra.putString("class", "yyyyyyy");//应用入口Activity类全路径extra.putInt("badgenumber", i);//i为0即可清除context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra);
复制代码

Q3:如何设置圆点角标?

圆点角标无需开发配置,圆点角标和通知栏消息相关联,通知栏中有应用消息圆点是清除不了的,如果通知栏没有应用消息则圆点会自动清除掉。

开启方式:

圆点角标需手动开启,以 HarmonyOS 3.0 系统举例:设置->通知和状态栏->桌面图标角标->角标显示方式(数字角标/圆点角标)。

Q4:应用桌面图标角标开关无法开启或未显示开关。

这种情况说明未成功设置过角标,只有成功设置桌面角标后才可以开启或显示开关。

Q5:推送消息设置了角标字段但未显示角标?

1、检查是否同时设置了 set_num 为 0,同时配置“add_num”与“set_num”以 set_num 数量为准。


2、检查“class”字段参数是否正确,参数为应用入口 Activity 类的全路径。(易错)


例如:com.huawei.codelabpush.MainActivity。


<activity android:name="com.huawei.codelabpush.MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity>
复制代码

Q6:未设置角标参数,但收到消息后显示了角标。

检查是否只设置了“class”字段,设置了“class”字段“add_num”和“set_num”都设置为空,则应用角标数字默认累加 1。


例如:


"badge":{"class":" com.huawei.codelabpush.MainActivity"}
复制代码


了解更多详情>>


访问HMS Core 联盟官网


获取HMS Core 开发指导文档


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

用户头像

HMS Core

关注

HMS Core技术团队。 2022-06-16 加入

分享最新的技术干货,带来最全的能力应用场景,更新热门开发者圈子活动。与开发者一起,同成长,共精彩。

评论

发布
暂无评论
【FAQ】HMS Core推送服务推送角标的开发及常见问题解答_HMS Core_HMS Core_InfoQ写作社区