ArtTS系統能力-通知的學習(3.1)

上篇回顧: ArtTS語言基礎類庫-容器類庫內容的學習(2.10.2)

本篇內容: ArtTS系統能力-通知的學習(3.1)

一、 知識儲備

1. 基礎類型通知

按內容分成四類:

類型描述
NOTIFICATION_CONTENT_BASIC_TEXT普通文本類型
NOTIFICATION_CONTENT_LONG_TEXT長文本類型
NOTIFICATION_CONTENT_MULTILINE多行文本類型
NOTIFICATION_CONTENT_PICTURE圖片類型

2. 帶進度類型通知

在這里插入圖片描述

3. 帶事件響應類型通知

二、 效果一覽

在這里插入圖片描述

三、 源碼剖析

import notificationManager from '@ohos.notificationManager'
import http from '@ohos.net.http'
import ResponseCode from '@ohos.net.http'
import image from '@ohos.multimedia.image'
import wantAgent from '@ohos.app.ability.wantAgent'function basicText() {let notificationRequest = {id: 1,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: '通知類型',text: '普通文本類型',additionalText: '我是補充標題'}}}notificationManager.publish(notificationRequest, err => {if (err) {console.error(`普通文本類型通知發布失敗: ${err}`)return;}console.info('普通文本類型通知發布成功')})
}function longText() {let notificationRequest = {id: 2,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_LONG_TEXT,longText: {title: '通知類型', //無效text: '長文本類型', //無效additionalText: '我是補充標題 ',longText: '我是長文本我是長文本我是長文本',briefText: '我是簡明信息', //無效expandedTitle: '我是擴展文本'}}}notificationManager.publish(notificationRequest, err => {if (err) {console.error('長文本類型通知發布失敗:' + err)return;}console.info('長文本類型通知發布成功')})
}function multiline() {let notificationRequest = {id: 3,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE,multiLine: {title: '通知類型', //無效additionalText: '我是補充標題',text: '多行文本類型', //無效briefText: '我是簡明信息', //無效longTitle: '我是長文本標題',lines: ['第一行', '第二行', '第三行', '第四行', '第五行']}}}notificationManager.publish(notificationRequest, err => {if (err) {console.error(`多行文本通知發布失敗: ${err}`)return;}console.info('多行文本通知發布成功')})
}function picture() {let imgUrl: string = 'https://img1.baidu.com/it/u=3241660985,1063915045&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1194';http.createHttp().request(imgUrl, (err, data) => {if (err) {console.error(`err is ${JSON.stringify(err)}`)} else {let code = data.responseCode;if (ResponseCode.ResponseCode.OK == code) {let res: any = data.result;let imageSource = image.createImageSource(res)let options = {alphaTye: 0, //透明度editable: false, //是否可編輯pixelFormat: 3, //像素格式scaleMode: 1, //縮略值size: { height: 100, wight: 100 } //創建圖片大小}imageSource.createPixelMap(options).then(pixelMap => {let imagePixelMap: PixelMap = undefined;imagePixelMap = pixelMap;let notificationRequest = {id: 4,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_PICTURE,picture: {title: '通知類型',text: '圖片通知',additionalText: '我是補充標題',briefText: '我是簡明信息',expandedTitle: '擴展消息',picture: imagePixelMap}}}notificationManager.publish(notificationRequest, err => { //	官方解釋 :2024.06.30 圖片類型通知。(預留能力,暫未支持)。if (err) {console.error(`圖片類型通知發布失敗: ${err}`)return;}console.info('圖片類型通知發布成功')})})}}})
}function progress() {let progress = 1;// for (let i = 0; i < 100; i++) {//   setTimeout(() => {//     progress += 1;////   }, 100);// }//需要先查詢系統是否支持進度條模板notificationManager.isSupportTemplate('downloadTemplate').then((data) => {let isSupport: boolean = data;if (isSupport) {let notificationRequest = {id: 5,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: '下載通知',text: '我正在下載',additionalText: '下載通知標題'}},template: { // 構造進度條模板,name字段當前需要固定配置為 downloadTemplatename: 'downloadTemplate',data: {title: '文檔下載',fileName: '阿吉',progressValue: 22}}}notificationManager.publish(notificationRequest, err => {if (err) {console.error(`下載進度提醒失敗 ${err}`)return;}console.info('下載進度提醒正常')})}}).catch(err => {console.error(`暫不支持:${err.message}`)})
}function action() {let wantAgentObj = null; //用于保存創建成功的wantAgent對象,后續使用其完成觸發的動作let wantAgentInfo = { //通過 wantAgentInfo的operationType設置動作類型wants: [{deviceId: '',bundleName: 'com.aji.first',abilityName: 'com.aji.first.SecondAbility',action: '',entities: [],uri: '',parameters: {}}],operationType: wantAgent.OperationType.START_ABILITY,requestCode: 0,wantAgentFlags: [wantAgent.WantAgentFlags.CONSTANT_FLAG]}wantAgent.getWantAgent(wantAgentInfo, (err, data) => {if (err) {console.error('失敗: ' + JSON.stringify(err))} else {wantAgentObj = data;}})let notificationRequest = {6id: 6,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: '標題',text: '進入應用',additionalText: '歡迎再次使用'},label: '阿吉',wantAgent: wantAgentObj}}notificationManager.publish(notificationRequest, err => {if (err) {console.error('發布失敗' + err)return;}console.info('發布成功')})
}@Entry
@Component
struct Index {build() {Column() {Button('普通文本類型').onClick(() => {basicText();}).margin(20)Button('長文本類型').onClick(() => {longText();}).margin(20)Button('多行文本類型').onClick(() => {multiline();}).margin(20)Button('圖片類型').onClick(() => {picture();}).margin(20)Button('進度條類型').onClick(() => {progress();}).margin(20)Button('帶意圖類型').onClick(() => {action();}).margin(20)}.width('100%').height('100%')}
}

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

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

相關文章

2024 Parallels Desktop for Mac 功能介紹

Parallels Desktop的簡介 Parallels Desktop是一款由Parallels公司開發的桌面虛擬化軟件&#xff0c;它允許用戶在Mac上運行Windows和其他操作系統。通過強大的技術支持&#xff0c;用戶無需重新啟動電腦即可在Mac上運行Windows應用程序&#xff0c;實現了真正的無縫切換。 二…

普元EOS學習筆記-創建精簡應用

前言 本文依舊基于EOS8.3進行描述。 在上一篇文章《EOS8.3精簡版安裝》中&#xff0c;我們了解到普元預編譯好的EOS的精簡版壓縮包&#xff0c;安裝后&#xff0c;只能進行低開&#xff0c;而無法高開。 EOS精簡版的高開方式是使用EOS開發工具提供的IDE&#xff0c;創建一個…

東軟睿馳總裁兼CTO杜強受邀出席 CICV 2024智能網聯汽車技術首腦(CTO)閉門峰會

近日&#xff0c;第十一屆國際智能網聯汽車技術年會&#xff08;CICV 2024&#xff09;在北京舉辦&#xff0c;會議期間組織智能網聯汽車技術首腦&#xff08;CTO&#xff09;閉門峰會&#xff0c;邀請40余位技術領袖圍繞智能網聯汽車產業生態建設以及智能網聯汽車數據、算力和…

SQL語句查詢Cache數據庫中數據時對時間怎樣轉換

使用東華醫為HIS系統的用戶都知道&#xff0c;Cache數據庫中對于日期的存儲為幾萬的數字&#xff0c;比如&#xff0c;今天就是相對于1841年1月1日的第多少萬天&#xff0c;以這種形式進行表示&#xff1b;對于時間&#xff0c;也是以數字形式存儲&#xff0c;比如&#xff0c;…

Python的numpy簡單使用

1.可以調用引入numpy里面的函數&#xff0c;如add可以把倆數相加&#xff0c;也可以創建一個數組arr&#xff0c;arr.shape是數組arr的屬性&#xff0c;如果后有跟&#xff08;&#xff09;就是里面的一個函數 type()函數可以知道里面是什么類型 變量.shape可以知道這個變量是…

BLEU和SPICE:機器翻譯與圖像描述的自動評估方法詳解

BLEU和SPICE&#xff1a;機器翻譯與圖像描述的自動評估方法詳解 在機器翻譯和圖像描述領域&#xff0c;評估模型性能是一個重要且復雜的問題。為了有效地評估機器生成的文本質量&#xff0c;我們需要一種自動、快速且可靠的方法。BLEU&#xff08;Bilingual Evaluation Unders…

基于決策樹的旋轉機械故障診斷(Python)

前置文章&#xff1a; 將一維機械振動信號構造為訓練集和測試集&#xff08;Python&#xff09; https://mp.weixin.qq.com/s/DTKjBo6_WAQ7bUPZEdB1TA 旋轉機械振動信號特征提取&#xff08;Python&#xff09; https://mp.weixin.qq.com/s/VwvzTzE-pacxqb9rs8hEVw import…

菲爾茲獎得主測試GPT-4o,經典過河難題未能破解!最強Claude 3.5回答離譜!

目錄 01 大言模型能否解決「狼-山羊-卷心菜」經典過河難題&#xff1f; 02 加大難度&#xff1a;100只雞、1000只雞如何&#xff1f; 01 大言模型能否解決「狼-山羊-卷心菜」經典過河難題&#xff1f; 最近&#xff0c;菲爾茲獎得主Timothy Gowers分享了他測試GPT-4o的經歷&a…

游戲推薦: 植物大戰僵尸雜交版

下載地址網上一搜就有. 安裝就能玩. 2是顯血. 4顯示植物血, 5是加速. 都是左手主鍵盤的按鈕, 再按是取消. 比較刺激: ps: 設置里面還能打開自動收集陽光和金幣.

視頻融合共享平臺LntonCVS統一視頻接入平臺智慧安防應用方案

安防視頻監控平臺LntonCVS是一款擁有強大拓展性和靈活部署能力的綜合管理平臺。它支持多種主流標準協議&#xff0c;包括國標GB28181、RTSP/Onvif、RTMP等&#xff0c;同時兼容各廠家的私有協議和SDK&#xff0c;如海康Ehome、海大宇等。LntonCVS不僅具備傳統安防視頻監控功能&…

深入解析Tomcat:Java Web服務器(上)

深入解析Tomcat&#xff1a;Java Web服務器&#xff08;上&#xff09; Apache Tomcat是一個開源的Java Web服務器和Servlet容器&#xff0c;用于運行Java Servlets和JavaServer Pages (JSP)。Tomcat在Java Web應用開發中扮演著重要角色。本文將詳細介紹Tomcat的基本概念、安裝…

遙遠星辰中的覺醒:超大質量黑洞的蘇醒

遙遠星辰中的覺醒&#xff1a;超大質量黑洞的蘇醒 在浩渺無垠的宇宙中&#xff0c;星辰的閃爍仿佛是時間的漣漪&#xff0c;穿越億萬年的距離&#xff0c;抵達我們的眼眸。而在這片星辰大海的深處&#xff0c;一個驚人的現象正在悄然上演——距離地球3.6億光年之遙的星系中&am…

【C++】空指針訪問成員函數

空指針訪問成員函數 C中空指針也是可以調用成員函數的&#xff0c;但是也要注意有沒有用到this指針 如果用到this指針&#xff0c;需要加以判斷保證代碼的健壯性 class Animal { public:void fun1() {//正常的成員函數}void fun2() {if (this NULL) {return;//如果沒有這個…

Django 一對一關系

作用&#xff1a; 兩個數據庫表建立外鍵關系當外鍵表的數據被刪除時&#xff0c;主表的數據也會一并刪除。 1&#xff0c;添加表模型 Test/app8/views.pyfrom django.db import modelsclass User(models.Model):username models.CharField(max_length50, uniqueTrue)email …

【代碼隨想錄訓練營】【Day 65】【圖論-2】| 卡碼 99

【代碼隨想錄訓練營】【Day 65】【圖論-2】| 卡碼 99 需強化知識點 深度搜索和廣度搜索 題目 99. 島嶼數量 思想&#xff1a;遍歷到為1的節點&#xff0c;再搜索標記&#xff0c;每遇到新的陸地節點&#xff0c;增加計數 深度搜索廣度搜索&#xff1a;此處用 [] 作為待遍…

前端面試必備:深入解析Vue.js中v-if與v-show的原理與應用

前言 在Vue.js中&#xff0c;條件渲染是一個核心的概念&#xff0c;它允許我們根據數據的狀態來動態地顯示或隱藏元素。v-if和v-show是Vue.js提供的兩個最常用的條件渲染指令&#xff0c;它們在表面上看起來很相似&#xff0c;但實際上在背后的工作原理和適用場景上有著顯著的…

2024年度濰坊市職業技能大賽 —網絡搭建(網絡與信息安全管理員)職業技能競賽賽項規程

2024年度濰坊市職業技能大賽 —網絡搭建&#xff08;網絡與信息安全管理員&#xff09;職業技能競賽賽項技術文件................................ 一、賽項簡介...................................... 3 二、競賽規程...................................... 3 &#xff08…

【Linux系統】進程替換 自主實現shell(簡易版)

1.先看代碼 && 現象 我們用exec*函數執行新的程序&#xff0c; exec*系列的函數&#xff0c;執行完畢后&#xff0c;后續的代碼不見了&#xff0c;因為被替換了。 execl的返回值可以不關心了&#xff0c;只要替換成功&#xff0c;就不會向后繼續運行&#xff0c;只要…

第5講:建立自己的C函數庫,js調用自己寫的C/C++函數,并包含依賴C/C++第三方靜態庫。

在javascript中&#xff0c;Array有很多內置的功能&#xff0c;比如Array.map&#xff0c;Array.filter&#xff0c;Array.find等等&#xff0c;能用內置的功能就用內置的功能&#xff0c;最好不要自己實現一套&#xff0c;因為底層調用的可能壓根就不是js語言本身&#xff0c;…

[AIGC] awk 和 sed

在Unix系統中&#xff0c;有兩種強大的用于文本操作的命令工具&#xff0c;它們就是awk和sed。這兩個命令工具是每個Linux用戶必備的知識之一&#xff0c;尤其對于需要進行文本處理或數據抽取的開發者來說&#xff0c;更加重要。 在實際開發過程中&#xff0c;我們常常需要處理…