【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

这篇具有很好参考价值的文章主要介绍了【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

一、 通知概述

通知简介

应用可以通过通知接口发送通知消息,终端用户可以通过通知栏查看通知内容,也可以点击通知来打开应用。

通知常见的使用场景:

​ ● 显示接收到的短消息、即时消息等。

​ ● 显示应用的推送消息,如广告、版本更新等。

​ ● 显示当前正在进行的事件,如下载等。

HarmonyOS通过ANS(Advanced Notification Service,通知系统服务)对通知类型的消息进行管理,支持多种通知类型,如基础类型通知、进度条类型通知。

通知业务流程

通知业务流程由通知子系统、通知发送端、通知订阅端组成。

一条通知从通知发送端产生,通过IPC通信发送到通知子系统,再由通知子系统分发给通知订阅端。

系统应用还支持通知相关配置,如使能开关、配置参数由系统配置发起请求,发送到通知子系统存储到内存和数据库。
【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

二、发布基础类型通知

基础类型通知主要应用于发送短信息、提示信息、广告推送等,支持普通文本类型、长文本类型、多行文本类型和图片类型。

表1 基础类型通知中的内容分类

类型 描述
NOTIFICATION_CONTENT_BASIC_TEXT 普通文本类型。
NOTIFICATION_CONTENT_LONG_TEXT 长文本类型。
NOTIFICATION_CONTENT_MULTILINE 多行文本类型。
NOTIFICATION_CONTENT_PICTURE 图片类型。

目前系统仅通知栏订阅了通知,将通知显示在通知栏里。基础类型通知呈现效果示意图如下所示。

图1 基础类型通知呈现效果示意图
【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

接口说明

通知发布接口如下表所示,不同发布类型通知由NotificationRequest的字段携带不同的信息。

接口名 描述
publish(request: NotificationRequest, callback: AsyncCallback): void 发布通知。
cancel(id: number, label: string, callback: AsyncCallback): void 取消指定的通知。
cancelAll(callback: AsyncCallback): void; 取消所有该应用发布的通知。

开发步骤

​ 1. 导入模块。

import NotificationManager from '@ohos.notificationManager';

2.构造NotificationRequest对象,并发布通知。

​ ● 普通文本类型通知由标题、文本内容和附加信息三个字段组成,其中标题和文本内容是必填字段。

let notificationRequest = {
  id: 1,
  content: {
    contentType: NotificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // 普通文本类型通知
    normal: {
      title: 'test_title',
      text: 'test_text',
      additionalText: 'test_additionalText',
    }
  }
}

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

运行效果如下图所示。

【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

​ ● 长文本类型通知继承了普通文本类型的字段,同时新增了长文本内容、内容概要和通知展开时的标题。通知默认显示与普通文本相同,展开后,标题显示为展开后标题内容,内容为长文本内容。

let notificationRequest = {
  id: 1,
  content: {
    contentType: NotificationManager.ContentType.NOTIFICATION_CONTENT_LONG_TEXT, // 长文本类型通知
    longText: {
      title: 'test_title',
      text: 'test_text',
      additionalText: 'test_additionalText',
      longText: 'test_longText',
      briefText: 'test_briefText',
      expandedTitle: 'test_expandedTitle',
    }
  }
}

// 发布通知
NotificationManager.publish(notificationRequest, (err) => {
    if (err) {
        console.error(`[ANS] failed to publish, error[${err}]`);
        return;
    }
    console.info(`[ANS] publish success`);
});

运行效果如下图所示。
【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

​ ● 多行文本类型通知继承了普通文本类型的字段,同时新增了多行文本内容、内容概要和通知展开时的标题。通知默认显示与普通文本相同,展开后,标题显示为展开后标题内容,多行文本内容多行显示。

let notificationRequest = {
  id: 1,
  content: {
    contentType: NotificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE, // 多行文本类型通知
    multiLine: {
      title: 'test_title',
      text: 'test_text',
      briefText: 'test_briefText',
      longTitle: 'test_longTitle',
      lines: ['line_01', 'line_02', 'line_03', 'line_04'],
    }
  }
}

// 发布通知
NotificationManager.publish(notificationRequest, (err) => {
  if (err) {
    console.error(`[ANS] failed to publish, error[${err}]`);
    return;
  }
  console.info(`[ANS] publish success`);
});

运行效果如下图所示。
【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

通知继承了普通文本类型的字段,同时新增了图片内容、内容概要和通知展开时的标题,图片内容为PixelMap型对象,其大小不能超过2M。

// 图片构造
const color = new ArrayBuffer(60000);
let bufferArr = new Uint8Array(color);
for (var i = 0; i<bufferArr.byteLength;i++) {
  bufferArr[i++] = 60;
  bufferArr[i++] = 20;
  bufferArr[i++] = 220;
  bufferArr[i] = 100;
}
let opts = { editable:true, pixelFormat:"ARGB_8888", size: {height:100, width : 150}};
await image
  .createPixelMap(color, opts)
  .then(async (pixelmap) => {
    await pixelmap.getImageInfo().then(imageInfo => {
      console.log("=====size: ====" + JSON.stringify(imageInfo.size));
    }).catch(err => {
      console.error("Failed to obtain the image pixel map information." + JSON.stringify(err));
      return;
    })
    let notificationRequest = {
      id: 1,
      content: {
        contentType: notify.ContentType.NOTIFICATION_CONTENT_PICTURE,
        picture: {
          title: 'test_title',
          text: 'test_text',
          additionalText: 'test_additionalText',
          picture: pixelmap,
          briefText: 'test_briefText',
          expandedTitle: 'test_expandedTitle',
        }
      },
    }
    // 发送通知
    NotificationManager.publish(notificationRequest, (err) => {
      if (err) {
        console.error(`[ANS] failed to publish, error[${err}]`);
        return;
      }
      console.info(`[ANS] publish success `);
    });
  }).catch(err=>{
    console.error('create pixelmap failed =========='+ JSON.stringify(err));
    return;
  })

运行效果如下图所示。
【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)

本文由博客一文多发平台 OpenWrite 发布!文章来源地址https://www.toymoban.com/news/detail-710339.html

到了这里,关于【中秋国庆不断更】HarmonyOS对通知类消息的管理与发布通知(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【中秋国庆不断更】OpenHarmony定义可动画属性:@AnimatableExtend装饰器

    @AnimatableExtend装饰器用于自定义可动画的属性方法,在这个属性方法中修改组件不可动画的属性。在动画执行过程时,通过逐帧回调函数修改不可动画属性值,让不可动画属性也能实现动画效果。 ​ ● 可动画属性:如果一个属性方法在animation属性前调用,改变这个属性的值

    2024年02月08日
    浏览(37)
  • 【中秋国庆不断更】OpenHarmony组件内状态变量使用:@State装饰器

    @State装饰的变量,或称为状态变量,一旦变量拥有了状态属性,就和自定义组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变。 在状态变量相关装饰器中,@State是最基础的,使变量拥有状态属性的装饰器,它也是大部分状态变量的数据源。 说明: 从API version 9开

    2024年02月08日
    浏览(41)
  • 【HarmonyOS】消息通知场景的实现

                从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是什么?鸿蒙仅仅是一个手机操作系

    2024年01月17日
    浏览(33)
  • 国庆中秋特辑(四)MySQL如何性能调优?上篇

    国庆中秋特辑系列文章: 国庆中秋特辑(八)Spring Boot项目如何使用JPA 国庆中秋特辑(七)Java软件工程师常见20道编程面试题 国庆中秋特辑(六)大学生常见30道宝藏编程面试题 国庆中秋特辑(五)MySQL如何性能调优?下篇 国庆中秋特辑(四)MySQL如何性能调优?上篇 国庆

    2024年02月08日
    浏览(42)
  • 国庆中秋特辑(五)MySQL如何性能调优?下篇

    国庆中秋特辑系列文章: 国庆中秋特辑(八)Spring Boot项目如何使用JPA 国庆中秋特辑(七)Java软件工程师常见20道编程面试题 国庆中秋特辑(六)大学生常见30道宝藏编程面试题 国庆中秋特辑(五)MySQL如何性能调优?下篇 国庆中秋特辑(四)MySQL如何性能调优?上篇 国庆

    2024年02月08日
    浏览(33)
  • 国庆中秋特辑(八)Spring Boot项目如何使用JPA

    国庆中秋特辑系列文章: 国庆中秋特辑(八)Spring Boot项目如何使用JPA 国庆中秋特辑(七)Java软件工程师常见20道编程面试题 国庆中秋特辑(六)大学生常见30道宝藏编程面试题 国庆中秋特辑(五)MySQL如何性能调优?下篇 国庆中秋特辑(四)MySQL如何性能调优?上篇 国庆

    2024年02月08日
    浏览(53)
  • HarmonyOS云开发基础认证考试满分答案(100分)【全网最全-不断更新】

    系列文章: HarmonyOS应用开发者基础认证满分答案(100分) HarmonyOS应用开发者基础认证【闯关习题 满分答案】 HarmonyOS应用开发者高级认证满分答案(100分) HarmonyOS云开发基础认证满分答案(100分) PC端可直接搜索 快捷键: Ctrl+F 题目特有、技术等等 如有

    2024年02月04日
    浏览(104)
  • HarmonyOS应用开发者基础认证考试满分答案(100分)【全网最全-不断更新】

    系列文章: HarmonyOS应用开发者基础认证满分答案(100分) HarmonyOS应用开发者基础认证【闯关习题 满分答案】 HarmonyOS应用开发者高级认证满分答案(100分) HarmonyOS云开发基础认证满分答案(100分) PC端可直接搜索 快捷键: Ctrl+F 题目特有、技术等等 如有

    2024年01月16日
    浏览(50)
  • AIGC消息天天不断,到底什么是AIGC?

    最近,AIGC领域的新消息可以说是日新月异,今天国外某IT大佬推出一个新模型,明天国内某大厂推出一个新平台。 说来说去,到底什么是AIGC呢? AIGC的全称是 AI Generated Content ,也就是利用人工智能技术自动生成各种类型的内容。 AIGC的应用领域有很多,最主要的有四大领域:

    2024年02月09日
    浏览(35)
  • HarmonyOS-@Watch装饰器:状态变量更改通知

    除了前面章节提到的组件状态管理和应用状态管理,ArkTS还提供了@Watch和$$来为开发者提供更多功能: @Watch用于监听状态变量的变化。 $$运算符:给内置组件提供TS变量的引用,使得TS变量和内置组件的内部状态保持同步。 @Watch应用于对状态变量的监听。如果开发者需要关注某

    2024年01月20日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包