通知
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: { // ... } }