通知

1.基础通知

应用场景:用户可以通过通知接口发送通知消息,提醒用户关注应用中的变化。用户可以在通知栏查看和操作通知内容

使用:

1)导入notification模块

import notificationManager from '@ohos.notificationManager'

2)发布通知

//构建通知请求
let request:notificationManager.NotificationRequest = {
    id: 10,
    content:{// 通知内容:...}
}
//发布通知
notificationManager.publish(request)
    .then(() => console.log('发布通知成功'))
    .catch(reason => console.log('发送通知失败',JSON.stringify(reason)))

3)取消通知

//取消指定id的通知
notificationManager.cancel(10)
//取消当前应用的所有通知
notificationManager.cancelAll()

 2.进度条通知

应用场景:进度条通知会展示一个动态的进度条,主要用于文件的下载、长任务处理的进度显示。

1)判断当前系统是否支持进度条模版

this.isSupport = await notificatonManager.isSupportTemplate('downloadTemplate')
if(!this.isSupport) {
    return
}

2) 定义通知请求

//通知模板
let template = {
    name:'downloadTemplate',//模版名称,必须是downloadTemplate
    data: {
        progressValue: this.progressValue,//进度条当前进度
        progressMaxValue: 100 //进度条最大值
  }
}
// 通知请求
let request: notificationManager.NotificationRequest = {
    id: 999,
    template: template,
    content: {
       contentType: notify.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
       normal:  {
         title: this.filename + ': ' + this.state,
         text:' ',
         additionalText: `${this.progressValue}%`,
}
}

}

 3.通知意图

我们可以给通知或者其中的按钮设置行为意图(want),从而实现拉起应用组件或者发布公共事件等能力。

//1.意图行为信息
let wantInfo = {
    wants: [
        {
           deviceId:' ',
           bundleName:' com.example.myapplication',
           abilityName:' EntryAbility',
           action:' ',
           entities:[]
     }
  ],
  operationType: wantAgent.OperationType.START_ABILITY,
  requestCode:0,
  wantAgentFlags: [wantAgent.WantAgentFlags.CONSTANT_FLAG]
}
//2.创建wantAgent实例
this.wantAgentInstance = await wantAgent.getWantAgent(wantInfo)
//3.通知请求
let request: notify.NotificationRequest = {
    id: 999,
    template: template,
    wantAgent: this.wantAgentInstance,//设置通知意图
    content: {
      // ...
}
}

 

posted @ 2024-07-13 22:47  狠认真的人  阅读(5)  评论(0编辑  收藏  举报