当前位置:   article > 正文

鸿蒙 DevEcoStudio:通知栏通知实现

鸿蒙 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%')
  }
}

运行效果图:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/643974
推荐阅读
相关标签
  

闽ICP备14008679号