鸿蒙 DevEcoStudio:通知栏通知实现

【使用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%')
  }
}

运行效果图:

  • 39
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值