从0到1跑通一个鸿蒙OS通知

151 阅读1分钟

1.通知简介

任何应用都离不开通知,公司的应用涉及通知的地方有:应用内下载及进度,资讯通知,音频播放通知。所以在正式开始鸿蒙OS应用开发之前,通知相关的知识储备是必不可少的。

通知架构 上图是鸿蒙通知架构图,我们只需要关注应用发送端即可,其他的都是鸿蒙系统自己处理的,只需稍微理解下即可。

image.png

2.通知的发送

2.1 通知的创建

let notificationRequest = {
  id:1,
  content:{
    contentType:notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
    normal:{
      title:'我是通知标题_title',
      text:'我是通知内容_text',
      additionalText:'我的通知额外说明_additionalText'
    }
  },
  label:'TEST',
  wantAgent:wantAgentObj
}

2.2 通知意图

let wantAgentInfo = {
  wants:[
    {
      deviceId: '', // deviceId为空表示本设备
      bundleName: 'om.example.myapplication',
      abilityName: 'NewsDetailAbility',
      moduleName: 'entry', // moduleName非必选
      // parameters: { // 自定义信息
      //   instanceKey: "ddf1132",
      // },
    }
  ],
  operationType:wantAgent.OperationType.START_ABILITY,
  requestCode:0,
  wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG]
}

wantAgent.getWantAgent(wantAgentInfo,(err,data)=>{
  if (err) {
    console.error('[WantAgent]getWantAgent err=' + JSON.stringify(err));
  } else {
    console.info('[WantAgent]getWantAgent success');
    wantAgentObj = data;
    //拿到wantAgentObj 就可以发送通知
  }

2.3 发送通知

  
notificationManager.publish(notificationRequest,(err) =>{
if (err) {
  console.error(`[ANS] failed to publish, error[${err}]`);
  return;
}
console.info(`[ANS] publish success`);
})

2.4 通知展示

GIF 2024-03-11 15-08-14.gif