14、鴻蒙學習——管理通知角標

針對未讀的通知,系統提供了角標設置接口,將未讀通知個數顯示在桌面圖標的右上角角標上。

通知增加時,角標上顯示的未讀通知個數需要增加。

通知被查看后,角標上顯示的未讀通知個數需要減少,沒有未讀通知時,不顯示角標。

一、接口說明

當角標設定個數取值0時,表示清除角標。取值大于99時,通知角標將顯示99+。

1、增加角標數,支持如下兩種方法:

(1)發布通知時,在NotificationRequest的badgeNumber字段里攜帶,桌面收到通知后,在原角標數上累加、呈現。

(2)調用接口setBadgeNumber()設置,桌面按設置的角標數呈現。

2、減少角標數,目前僅支持通過setBadgeNumber()設置。

接口名描述
setBadgeNumber(badgeNumber: number, callback: AsyncCallback<void>): void設置角標個數。

二、開發步驟?

1、導入NotificationManager模塊。

import { notificationManager } from '@kit.NotificationKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';const TAG: string = '[PublishOperation]';
const DOMAIN_NUMBER: number = 0xFF00;

2、增加角標個數。

發布通知在NotificationRequest的badgeNumber字段里攜帶,可參考通知發布章節。

示例為調用setBadgeNumber接口增加角標,在發布完新的通知后,調用該接口。

let setBadgeNumberCallback = (err: BusinessError): void => {if (err) {hilog.error(DOMAIN_NUMBER, TAG, `Failed to set badge number. Code is ${err.code}, message is ${err.message}`);return;}hilog.info(DOMAIN_NUMBER, TAG, `Succeeded in setting badge number.`);
}let badgeNumber = 9;
notificationManager.setBadgeNumber(badgeNumber, setBadgeNumberCallback);

3、減少角標個數。

一條通知被查看后,應用需要調用接口設置剩下未讀通知個數,桌面刷新角標。

let setBadgeNumberCallback = (err: BusinessError): void => {if (err) {hilog.error(DOMAIN_NUMBER, TAG, `Failed to set badge number. Code is ${err.code}, message is ${err.message}`);return;}hilog.info(DOMAIN_NUMBER, TAG, `Succeeded in setting badge number.`);
}let badgeNumber = 8;
notificationManager.setBadgeNumber(badgeNumber, setBadgeNumberCallback);

三、常見問題

由于setBadgeNumber為異步接口,使用setBadgeNumber連續設置角標時,為了確保執行順序符合預期,需要確保上一次設置完成后才能進行下一次設置。

  • ?反例

?????????????? 每次接口調用是相互獨立的、沒有依賴關系的,實際執行時無法保證調用順序。

?????????????? 示例如下:

let badgeNumber: number = 10;
notificationManager.setBadgeNumber(badgeNumber).then(() => {hilog.info(DOMAIN_NUMBER, TAG, `setBadgeNumber 10 success.`);
});
badgeNumber = 11;
notificationManager.setBadgeNumber(badgeNumber).then(() => {hilog.info(DOMAIN_NUMBER, TAG, `setBadgeNumber 11 success.`);
});
  • 正例

??????????????? 多次接口調用存在依賴關系,確保上一次設置完成后才能進行下一次設置。

????????????????示例如下:

let badgeNumber: number = 10;
notificationManager.setBadgeNumber(badgeNumber).then(() => {hilog.info(DOMAIN_NUMBER, TAG, `setBadgeNumber 10 success.`);badgeNumber = 11;notificationManager.setBadgeNumber(badgeNumber).then(() => {hilog.info(DOMAIN_NUMBER, TAG, `setBadgeNumber 11 success.`);});
});

參考:文檔中心

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62284.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62284.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62284.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Thonny IDE + MicroPython + ESP32 + GY-302 測量環境中的光照強度

GY-302是一款基于BH1750FVI光照強度傳感器芯片的模塊。該模塊能夠直接測量出環境中的光照強度&#xff0c;并將光照強度轉換為數字信號輸出。其具體參數如下表所示。 參數名稱 參數特性 測量范圍 0-65535 LX 測量精度 在環境光下誤差小于20%&#xff0c;能夠自動忽略50/60…

AJAX和XHR、fetch、axios的關系

AJAX中有兩套原生的API&#xff0c;一個是XHR(XMLHttpRequest)&#xff0c;一個是Fetch API axios是第三方庫&#xff0c;在瀏覽器環境中使用的是XHR umi-request也是第三方庫&#xff0c;在瀏覽器環境中使用的是Fetch 在 AJAX&#xff08;Asynchronous JavaScript and XML&am…

openlayers地圖緩存添加

//通過安裝包localforage&#xff08;npm install localforage&#xff09;或https://cdnjs.cloudflare.com/ajax/libs/localforage/1.10.0/localforage.min.js tileCacheStore.js import localforage from localforage var tileCacheStorenull;// 從緩存中獲取該瓦片 functio…

云軸科技ZStack出席中國電信國際EMCP平臺香港發布會,持續推動海外合作

近日&#xff0c;以“云聚未來 翼起新篇”為主題的中國電信國際多云服務一站式平臺&#xff08;E-surfing Managed Cloud Platform&#xff0c;簡稱EMCP平臺&#xff09;新聞發布會在香港成功舉辦&#xff0c;標志著中國電信國際在云計算服務領域取得了又一重大進展。云軸科技…

面試復盤 part 02·1202-1207 日

作品集講述部分 分析反思 作品集講述部分&#xff0c;視覺講述部分需要更換&#xff0c;需要換成其他視覺相關的修改 具體話術 這是一個信息展示優化方案&#xff0c;用戶為財務&#xff0c;信息區分度不足&#xff0c;理解成本較高&#xff0c;因此選擇需要降低理解成本。…

2024.11.29——[HCTF 2018]WarmUp 1

拿到題&#xff0c;發現是一張圖&#xff0c;查看源代碼發現了被注釋掉的提示 <!-- source.php--> step 1 在url傳參看看這個文件&#xff0c;發現了這道題的源碼 step 2 開始審計代碼&#xff0c;分析關鍵函數 //mb_strpos($haystack,$needle,$offset,$encoding):int|…

brpc的二次封裝以及brpc與etcd的聯合

目的&#xff1a; 搭配etcd的注冊中心管理能知道誰能提供什么服務&#xff0c;并用rpc進行服務調用 封裝思想&#xff1a; 信道管理&#xff0c;將不同服務主機的通信信道管理起來 封裝&#xff1a; 1.指定的信道管理類 一個服務通常會有多個節點&#xff0c;每個節點都會…

【提升效率】如何寫好一份詳細設計文檔

版本日期修訂人描述V1.02024/12/6nick huang創建文檔 背景 CSDN在發起“如何做好一份技術文檔”的活動。 想起我最近在寫一份詳細設計&#xff0c;有一些感受&#xff1a; 一份考慮較周全的“詳細設計文檔模板”能起到質量保底的作用。 當一名初級技術人員需要編寫詳細設計文…

電阻計RM3544、RM3545的使用

目錄&#xff1a; 一、電阻計與PC通訊 1、硬件連接 2、RmLogger.exe的使用 二、RM3545測量35uΩ電阻 一、電阻計與PC通訊 1、硬件連接 可以設置USB或COM口(串口)連接PC&#xff0c;也可以設置為“打印”輸出。 1&#xff09;使用USB連接PC 2&#xff09;使用串口連接PC …

Jenkins 的HTTP Request 插件為什么不能配置Basic認證了

本篇遇到的問題 還是因為Jenkins需要及其所在的OS需要升級&#xff0c;升級策略是在一臺新服務器上安裝和配置最新版本的Jenkins&#xff0c; 當前的最新版本是&#xff1a; 2.479.2 LTS。 如果需要這個版本的話可以在官方站點下載&#xff0c;也可以到如下地址下載&#xff1…

uniapp 封裝自定義頭部導航欄

封裝原因 項目中有時候需要使用自定義的頭部導航欄&#xff0c;原生的無法滿足需求 參數 屬性名描述示例title標題字符串&#xff1a;首頁bgColor背景色字符串&#xff1a;#ffftype左側的操作內容字符串&#xff1a;all&#xff0c;詳細值請在下方查看 參數解釋 type all…

docker學習筆記(五)--docker-compose

文章目錄 常用命令docker-compose是什么yml配置指令詳解versionservicesimagebuildcommandportsvolumesdepends_on docker-compose.yml文件編寫 常用命令 命令說明docker-compose up啟動所有docker-compose服務&#xff0c;通常加上-d選項&#xff0c;讓其運行在后臺docker-co…

Linux中inode

磁盤的空間管理 如何對磁盤空間進行管理&#xff1f; 假設在一塊大小為500G的磁盤中&#xff0c;500*1024*1024524288000KB。在磁盤中&#xff0c;扇區是磁盤的基本單位&#xff08;一般大小為512byte&#xff09;&#xff0c;而文件系統訪問磁盤的基本單位是4KB&#xff0c;因…

5G揚帆乘勁風,遨游通訊賦能千行百業譜新篇

在大型工廠&#xff0c;輕觸手機屏幕&#xff0c;實時庫存數據、人員定位等信息便躍然眼前、一目了然&#xff1b;在邊遠油田&#xff0c;動動手指&#xff0c;即可實時查詢設備溫度、危險氣體濃度等信息&#xff0c;大數據瞬間盡在“掌”握……在遨游5G防爆智能手機的助力下&a…

RT Thread Studio新建STM32F407IG工程文件編譯提示錯誤

編譯提示錯誤 原因: RT 源碼使用4.0.3的話&#xff0c;請用STM32F4支持包的0.2.2版本&#xff0c;就不會出錯了。 如果支持包用0.2.3版本的話&#xff0c;需要用RT內核4.1.0版本。0.2.3 版本更新了一些針對內核4.1.0的驅動代碼&#xff0c;這幾個定義都是4.1.0里的。

學生管理系統(java)

1.前期準備 &#xff08;1&#xff09;新建java項目 &#xff08;2&#xff09;新建java軟件包以及三個文件Student.java,Student.txt,StuSystem.java Student.java package student_management_system;public class Student {private String id;private String name;private…

JavaWeb學習(2)(Cookie原理(超詳細)、HTTP無狀態)

目錄 一、HTTP無狀態。 &#xff08;1&#xff09;"記住我"&#xff1f; &#xff08;2&#xff09;HTTP無狀態。 &#xff08;3&#xff09;信息存儲客戶端中。如何處理&#xff1f; 1、loaclStorage與sessionStorage。 2、Cookie。 二、Cookie。 &#xff08;1&…

SpringBoot教程(三十二) SpringBoot集成Skywalking鏈路跟蹤

SpringBoot教程&#xff08;三十二&#xff09; | SpringBoot集成Skywalking鏈路跟蹤 一、Skywalking是什么&#xff1f;二、Skywalking與JDK版本的對應關系三、Skywalking下載四、Skywalking 數據存儲五、Skywalking 的啟動六、部署探針 前提&#xff1a; Agents 8.9.0 放入 …

flask創建templates目錄存放html文件

首先&#xff0c;創建flask項目&#xff0c;在pycharm中File --> New Project&#xff0c;選擇Flask項目。 然后&#xff0c;在某一目錄下&#xff0c;新建名為templates的文件夾&#xff0c;這時會是一個普通的文件夾。 然后右擊templates文件夾&#xff0c;選擇Unmark as …

Java進階(注解,設計模式,對象克隆)

Java進階(注解&#xff0c;設計模式&#xff0c;對象克隆) 一. 注解 1.1 什么是注解 java中注解(Annotation)&#xff0c;又稱java標注&#xff0c;是一種特殊的注釋 可以添加在包&#xff0c;類&#xff0c;成員變量&#xff0c;方法&#xff0c;參數等內容上 注解會隨同…