鸿蒙 DevEcoStudio:通知栏通知实现

news2025/1/14 0:57:19

【使用notificationManager实现通知栏功能】

【普通通知、长文本通知、多行通知、图片通知】

import notificationManager from '@ohos.notificationManager'
import image from '@ohos.multimedia.image'
@Entry
@Component
struct Index {
  @State message: string = 'Hello World'
  // 将图片转换为PixelMap对象
  imagePixelMap: PixelMap=undefined
  async aboutToAppear(){
  //   获取资源管理器
    let rm=getContext(this).resourceManager
    // 读取图片
    let file=await rm.getMediaContent($r('app.media.app_icon'))
  //   创建PixelMap
    image.createImageSource(file.buffer).createPixelMap()
      .then(value=>{
        this.imagePixelMap=value
      })
  }
  build() {
    Row() {
      Column() {
        // 普通通知
        Text('发布普通通知1')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(()=>{
            let notificationRequest: notificationManager.NotificationRequest={
              id:1,
              content:{
                contentType:notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
                normal:{
                  title:'普通通知标题1',
                  text:'普通通知内容',
                  additionalText:'附加内容'
                }
              }
            }
            notificationManager.publish(notificationRequest)
          })
        Text('发布普通通知2')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(()=>{
            let notificationRequest: notificationManager.NotificationRequest={
              id:2,
              content:{
                contentType:notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
                normal:{
                  title:'普通通知标题2',
                  text:'普通通知内容2',
                  additionalText:'附加内容'
                }
              }
            }
            notificationManager.publish(notificationRequest)
          })
        Text('取消普通通知')
          .onClick(()=>{
            notificationManager.cancel(1)
          })
        Text('取消全部通知')
          .onClick(()=>{
            notificationManager.cancelAll()
          })
        // 长文本通知
        Text('发布长文本通知')
          .onClick(()=>{
            let notificationRequest: notificationManager.NotificationRequest={
              id:3,
              content:{
                contentType:notificationManager.ContentType.NOTIFICATION_CONTENT_LONG_TEXT,
                longText:{
                  title:'长文本通知标题',
                  text:'长文本内容',
                  additionalText:'附加内容',
                  expandedTitle:'展开后标题',
                  briefText: 'text_long',
                  longText:'展开后内容(凑内容:sdwdwiifjewifjwiejfiwjfiwejfiwejfwefjwiejwgwg)'
                }
              }
            }
            notificationManager.publish(notificationRequest)
          })
        // 多行通知
        Text('发布多行通知')
          .onClick(()=>{
            let notificationRequest: notificationManager.NotificationRequest={
              id:4,
              content:{
                contentType:notificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE,
                multiLine:{
                  title:'多行通知标题',
                  text:'多行通知内容',
                  additionalText:'附加',
                  briefText:'text_mul',
                  longTitle:'展开标题',
                  lines:['第一行','第二行','第三行','第四行']
                }
              }
            }
            notificationManager.publish(notificationRequest)
          })
        // 图片类型通知(图片内容为PixelMap型对象,大小不超过2M)
        Text('图片通知')
          .onClick(()=>{
            let notificationRequest:notificationManager.NotificationRequest={
              id:5,
              content:{
                contentType:notificationManager.ContentType.NOTIFICATION_CONTENT_PICTURE,
                picture:{
                  title:'图片通知标题',
                  text:'图片通知内容',
                  additionalText:'附加内容',
                  expandedTitle:'展开图片标题',
                  briefText:'text_picture',
                  picture:this.imagePixelMap
                }
              }
            }
            notificationManager.publish(notificationRequest)
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

运行效果图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1683258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全之BGP详解

BGP;边界网关协议 使用范围;BGP范围,在AS之间使用的协议。 协议的特点(算法):路径矢量型,没有算法。 协议是否传递网络掩码:传递网络掩码,支持VLSM,CIDR …

17款奔驰GLS450升级头等舱行政独立四座马鞍是什么样体验

五座版本:迈巴赫GLS480的五座版本通常指的是具有五个座位的配置,包括两个前排座椅和三个后排座椅。这种配置适合搭载更多乘客,后排座椅通常为三人座设计,乘坐人数较多。 四座版本:迈巴赫GLS480的四座版本通常指的是具…

基于地理坐标的高阶几何编辑工具算法(4)——线分割面

文章目录 工具步骤应用场景算法输入算法输出算法示意图算法原理 工具步骤 选中待分割面,点击“线分割面”工具,绘制和面至少两个交点的线,双击结束,执行分割操作 应用场景 快速切分大型几何面,以降低面的复杂度&…

云曦2024年春季学期期中考复现

目录 Web Web_SINGIN 简简单单的文件上传 好玩的PHP 渗透的本质 简简单单的sql re baby_re easy xor Crypto easy_rsa Rsa2 Crypto_Singin Pwn pwn_Sing Misc easy_singin Xjpg 流量分析1 流量分析3 流量分析2 Web Web_SINGIN 1.使用右键检查&#xff0c…

如何在没有密码或Face ID的情况下解锁iPhone

iPhone 是一款以其一流的安全功能而闻名的设备,包括面容 ID 和密码。但是,你有没有想过,如果没有这些安全措施,你是否可以解锁iPhone?无论您是忘记了密码,Face ID不起作用,还是只是对其他方法感…

提权方式及原理汇总

一、Linux提权 1、SUID提权 SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。 为可执行文件添加suid权限的目的是简…

VUE使用screenfull实现网页全屏显示

使用方法 首先安装 npm install screenfull --save在使用.vue文件中 引入 import screenfull from screenfull在按钮方法中调用 screenfull.toggle()还可以检测全屏状态 screenfull.isFullscreen测试浏览器是否支持全screenfull screenfull.isEnabled API .request(ele) 全屏…

谓词逻辑(一)

一、句子的谓词符号化 谓词逻辑,也叫一阶逻辑,它对每个最简单的命题尽一步进行分解。 1个体词:可以独立存在的客体。 2谓词:描述一个个体词的属性或多个个体词之间的关系(可用一元函数和多元函数来理解)…

基于树的存储数据结构demo

一.简介 由于之前博主尝试Java重构redis,在redis中的的字典数据结构底层也是采用数组实现,字典中存在两个hash表,一个是用于存储数据,另一个被用于rehash扩容为前者两倍。但是我注意到了在redis的数据结构中,并没有像…

linux系统硬盘读写慢的排查方法

如果服务器硬盘读写慢,可能会导致处理性能降低,用户响应慢。因此及时排除故障至关重要。下面是硬盘读写慢的排查思路。 1、top命令查看硬盘是否繁忙。 2、找出占用硬盘带宽高的进程。 通过iotop命令进行查看,iotop命令是用于展示硬盘读写操作…

高中数学:平面向量-数乘运算

一、定义 顾名思义 向量的数乘运算,就是数量与向量相乘的运算 λ a → \mathop{a}\limits ^{\rightarrow} a→,λ∈R 二、λ a → \mathop{a}\limits ^{\rightarrow} a→的性质 1、长度 |λ|*| a → \mathop{a}\limits ^{\rightarrow} a→| |λ a …

设计模式6——单例模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 单例模式(Singleto…

python科研数据可视化之折线图

例如 : 下面的配色表画出的图很好看。选择喜欢的颜色,找到代码中颜色部分进行修改即可。 代码部分已经有详细的注释,就不一一解释了。另外,如果想要坐标轴从设定的值开始就把下面代码中的范围xlim,ylim进行注释。 imp…

Goby 漏洞发布|Sonatype Nexus Repository Manager 文件读取漏洞(CVE-2024-4956)

漏洞名称:Sonatype Nexus Repository Manager 文件读取漏洞(CVE-2024-4956) English Name: Sonatype Nexus Repository Manager File Read Vulnerability(CVE-2024-4956) CVSS core: 7.5 影响资产数:93784 漏洞描述…

QT--TCP网络通讯工具编写记录

QT–TCP网络通讯工具编写记录 文章目录 QT--TCP网络通讯工具编写记录前言演示如下:一、服务端项目文件:【1.1】server_tcp.h 服务端声明文件【1.2】thread_1.h 线程处理声明文件【1.3】main.cpp 执行源文件【1.4】server_tcp.cpp 服务端逻辑实现源文件【…

开箱测评!吸猫毛除味神器,希喂FreAir Lite宠物空气净化器实测

掉毛季又来了,猫咪的毛发满天飞,怎么办?我家掉毛怪一到季节就开始掉老多毛,关键还喜欢在家里打架跑酷!天上地下都是毛!为了减少家里空气中浮毛,你做过那些努力呢?最近猫掉毛掉的&…

02-结构型设计模式(共7种)

上一篇:01-创建型设计模式(共6种) 1. Adapter(适配器模式) 适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。这种模式通常用于解决接口不兼容的情况,使得原本由于接口不匹配而无法工作的类可以一起工作…

20232810 2023-2024-2 《网络攻防实践》实验十

1.实践内容 1.1SEED SQL注入攻击与防御实验 (1)使用数据库熟悉SQL查询: 我们已经创建了一个名为Users的数据库,其中包含一个名为creditential的表。该表存储了每个员工的个人信息(例如,eid,密…

DOS学习-目录与文件应用操作经典案例-rd

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 rd命令,全称Remove Directory,是DOS操作系统中的一个重要命令,用于删除指定的目录及其所有内容。 二.使用 命令格式…