关于android:App上看到就忍不住点的小红点是如何实现的

66次阅读

共计 1980 个字符,预计需要花费 5 分钟才能阅读完成。

你有没有发现,咱们解锁手机后桌面上 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

理解更多详情 >>

拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee

关注咱们,第一工夫理解 HMS Core 最新技术资讯~

正文完
 0