当前位置: 首页 > news >正文

ArtTS系统能力-通知的学习(3.1)

上篇回顾: ArtTS语言基础类库-容器类库内容的学习(2.10.2)

本篇内容: ArtTS系统能力-通知的学习(3.1)

一、 知识储备

1. 基础类型通知

按内容分成四类:

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

2. 带进度类型通知

在这里插入图片描述

3. 带事件响应类型通知

二、 效果一览

在这里插入图片描述

三、 源码剖析

import notificationManager from '@ohos.notificationManager'
import http from '@ohos.net.http'
import ResponseCode from '@ohos.net.http'
import image from '@ohos.multimedia.image'
import wantAgent from '@ohos.app.ability.wantAgent'function basicText() {let notificationRequest = {id: 1,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: '通知类型',text: '普通文本类型',additionalText: '我是补充标题'}}}notificationManager.publish(notificationRequest, err => {if (err) {console.error(`普通文本类型通知发布失败: ${err}`)return;}console.info('普通文本类型通知发布成功')})
}function longText() {let notificationRequest = {id: 2,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_LONG_TEXT,longText: {title: '通知类型', //无效text: '长文本类型', //无效additionalText: '我是补充标题 ',longText: '我是长文本我是长文本我是长文本',briefText: '我是简明信息', //无效expandedTitle: '我是扩展文本'}}}notificationManager.publish(notificationRequest, err => {if (err) {console.error('长文本类型通知发布失败:' + err)return;}console.info('长文本类型通知发布成功')})
}function multiline() {let notificationRequest = {id: 3,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE,multiLine: {title: '通知类型', //无效additionalText: '我是补充标题',text: '多行文本类型', //无效briefText: '我是简明信息', //无效longTitle: '我是长文本标题',lines: ['第一行', '第二行', '第三行', '第四行', '第五行']}}}notificationManager.publish(notificationRequest, err => {if (err) {console.error(`多行文本通知发布失败: ${err}`)return;}console.info('多行文本通知发布成功')})
}function picture() {let imgUrl: string = 'https://img1.baidu.com/it/u=3241660985,1063915045&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=1194';http.createHttp().request(imgUrl, (err, data) => {if (err) {console.error(`err is ${JSON.stringify(err)}`)} else {let code = data.responseCode;if (ResponseCode.ResponseCode.OK == code) {let res: any = data.result;let imageSource = image.createImageSource(res)let options = {alphaTye: 0, //透明度editable: false, //是否可编辑pixelFormat: 3, //像素格式scaleMode: 1, //缩略值size: { height: 100, wight: 100 } //创建图片大小}imageSource.createPixelMap(options).then(pixelMap => {let imagePixelMap: PixelMap = undefined;imagePixelMap = pixelMap;let notificationRequest = {id: 4,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_PICTURE,picture: {title: '通知类型',text: '图片通知',additionalText: '我是补充标题',briefText: '我是简明信息',expandedTitle: '扩展消息',picture: imagePixelMap}}}notificationManager.publish(notificationRequest, err => { //	官方解释 :2024.06.30 图片类型通知。(预留能力,暂未支持)。if (err) {console.error(`图片类型通知发布失败: ${err}`)return;}console.info('图片类型通知发布成功')})})}}})
}function progress() {let progress = 1;// for (let i = 0; i < 100; i++) {//   setTimeout(() => {//     progress += 1;////   }, 100);// }//需要先查询系统是否支持进度条模板notificationManager.isSupportTemplate('downloadTemplate').then((data) => {let isSupport: boolean = data;if (isSupport) {let notificationRequest = {id: 5,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: '下载通知',text: '我正在下载',additionalText: '下载通知标题'}},template: { // 构造进度条模板,name字段当前需要固定配置为 downloadTemplatename: 'downloadTemplate',data: {title: '文档下载',fileName: '阿吉',progressValue: 22}}}notificationManager.publish(notificationRequest, err => {if (err) {console.error(`下载进度提醒失败 ${err}`)return;}console.info('下载进度提醒正常')})}}).catch(err => {console.error(`暂不支持:${err.message}`)})
}function action() {let wantAgentObj = null; //用于保存创建成功的wantAgent对象,后续使用其完成触发的动作let wantAgentInfo = { //通过 wantAgentInfo的operationType设置动作类型wants: [{deviceId: '',bundleName: 'com.aji.first',abilityName: 'com.aji.first.SecondAbility',action: '',entities: [],uri: '',parameters: {}}],operationType: wantAgent.OperationType.START_ABILITY,requestCode: 0,wantAgentFlags: [wantAgent.WantAgentFlags.CONSTANT_FLAG]}wantAgent.getWantAgent(wantAgentInfo, (err, data) => {if (err) {console.error('失败: ' + JSON.stringify(err))} else {wantAgentObj = data;}})let notificationRequest = {6id: 6,content: {contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: '标题',text: '进入应用',additionalText: '欢迎再次使用'},label: '阿吉',wantAgent: wantAgentObj}}notificationManager.publish(notificationRequest, err => {if (err) {console.error('发布失败' + err)return;}console.info('发布成功')})
}@Entry
@Component
struct Index {build() {Column() {Button('普通文本类型').onClick(() => {basicText();}).margin(20)Button('长文本类型').onClick(() => {longText();}).margin(20)Button('多行文本类型').onClick(() => {multiline();}).margin(20)Button('图片类型').onClick(() => {picture();}).margin(20)Button('进度条类型').onClick(() => {progress();}).margin(20)Button('带意图类型').onClick(() => {action();}).margin(20)}.width('100%').height('100%')}
}

相关文章:

ArtTS系统能力-通知的学习(3.1)

上篇回顾&#xff1a; ArtTS语言基础类库-容器类库内容的学习(2.10.2&#xff09; 本篇内容&#xff1a; ArtTS系统能力-通知的学习&#xff08;3.1&#xff09; 一、 知识储备 1. 基础类型通知 按内容分成四类&#xff1a; 类型描述NOTIFICATION_CONTENT_BASIC_TEXT普通文…...

Apollo9.0 PNC源码学习之Planning模块(三)—— public_road_planner

前面文章: (1)Apollo9.0 PNC源码学习之Planning模块(一)—— 规划概览 (2)Apollo9.0 PNC源码学习之Planning模块(二)—— planning_component 1 planning_interface_base 规划接口基类: planning\planning_interface_base\planner_base\planner.h #pragma once#in…...

【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor

背景&#xff1a; linux服务器&#xff0c;CentOS 6操作系统&#xff0c;默认版本python2.6.6&#xff0c;避免安装过多的依赖不升级python 在网上查的资料python2.6.6兼容supervisor版本 3.1.3 安装supervisor 手动在python官网下载supervisor&#xff0c;并上传到服务器 下…...

推荐系统三十六式学习笔记:原理篇.模型融合14|一网打尽协同过滤、矩阵分解和线性模型

目录 从特征组合说起FM模型1.原理2.模型训练3.预测阶段4.一网打尽其他模型5.FFM 总结 在上一篇文章中&#xff0c;我们讲到了使用逻辑回归和梯度提升决策树组合的模型融合办法&#xff0c;用于CTR预估&#xff0c;给这个组合起了个名字&#xff0c;叫“辑度组合”。这对组合中&…...

如何使用mapXplore将SQLMap数据转储到关系型数据库中

关于mapXplore mapXplore是一款功能强大的SQLMap数据转储与管理工具&#xff0c;该工具基于模块化的理念开发&#xff0c;可以帮助广大研究人员将SQLMap数据提取出来&#xff0c;并转储到类似PostgreSQL或SQLite等关系型数据库中。 功能介绍 当前版本的mapXplore支持下列功能…...

JAVA设计模式-大集合数据拆分

背景 我们在做软件开发时&#xff0c;经常会遇到把大集合的数据&#xff0c;拆分成子集合处理。例如批量数据插入数据库时&#xff0c;一次大约插入5000条数据比较合理&#xff0c;但是有时候待插入的数据远远大于5000条。这时候就需要进行数据拆分。数据拆分基本逻辑并不复杂&…...

如何使用sr2t将你的安全扫描报告转换为表格格式

关于sr2t sr2t是一款针对安全扫描报告的格式转换工具&#xff0c;全称为“Scanning reports to tabular”&#xff0c;该工具可以获取扫描工具的输出文件&#xff0c;并将文件数据转换为表格格式&#xff0c;例如CSV、XLSX或文本表格等&#xff0c;能够为广大研究人员提供一个…...

ansible自动化运维,(2)ansible-playbook

三种常见的数据格式&#xff1a; XML&#xff1a;可扩展标记语言&#xff0c;用于数据交换和配置 JSON&#xff1a;对象标记法&#xff0c;主要用来数据交换或配置&#xff0c;不支持注释 YAML&#xff1a;不是一种标记语言&#xff0c;主要用来配置&#xff0c;大小写敏感&…...

一分钟学习数据安全—自主管理身份SSI分布式标识DID介绍

SSI标准化的两大支柱&#xff0c;一个是VC&#xff0c;之前简单介绍过&#xff0c;另一个就是DID。基本层次上&#xff0c;DID就是一种新型的全局唯一标识符&#xff0c;跟浏览器的URL没有什么不同。深层次上&#xff0c;DID是互联网分布式数字身份和PKI新层级的原子构件。 一…...

[单master节点k8s部署]11.服务service

service service是一个固定接入层&#xff0c;客户端 可以访问service的ip和端口&#xff0c;访问到service关联的后端pod&#xff0c;这个service工作依赖于dns服务&#xff08;coredns&#xff09; 每一个k8s节点上都有一个组件叫做kube-proxy&#xff0c;始终监视着apiser…...

ES6面试题——箭头函数和普通函数有什么区别

1. this指向问题 <script> let obj {a: function () {console.log(this); // 打印出&#xff1a;{a: ƒ, b: ƒ}},b: () > {console.log(this); // 打印出Window {window: Window, self: Window,...}}, }; obj.a(); obj.b(); </script> 箭头函数中的this是在箭…...

WordPress中文网址导航栏主题风格模版HaoWa

模板介绍 WordPress响应式网站中文网址导航栏主题风格模版HaoWa1.3.1源码 HaoWA主题风格除行为主体导航栏目录外&#xff0c;对主题风格需要的小控制模块都开展了敞开式的HTML在线编辑器方式的作用配备&#xff0c;另外预埋出默认设置的编码构造&#xff0c;便捷大伙儿在目前…...

ThreadPoolExecutor基于ctl变量的声明周期管理

个人博客 ThreadPoolExecutor基于ctl变量的声明周期管理 | iwts’s blog 总集 想要完整了解下ThreadPoolExecutor&#xff1f;可以参考&#xff1a; 基于源码详解ThreadPoolExecutor实现原理 | iwts’s blog ctl字段的应用 线程池内部使用一个变量ctl维护两个值&#xff…...

运维锅总详解Prometheus

本文尝试从Prometheus简介、架构、各重要组件详解、relable_configs最佳实践、性能能优化及常见高可用解决方案等方面对Prometheus进行详细阐述。希望对您有所帮助&#xff01; 一、Prometheus简介 Prometheus 是一个开源的系统监控和报警工具&#xff0c;最初由 SoundCloud …...

深入解析Tomcat:Java Web服务器(上)

深入解析Tomcat&#xff1a;Java Web服务器&#xff08;上&#xff09; Apache Tomcat是一个开源的Java Web服务器和Servlet容器&#xff0c;用于运行Java Servlets和JavaServer Pages (JSP)。Tomcat在Java Web应用开发中扮演着重要角色。本文将详细介绍Tomcat的基本概念、安装…...

【第9章】MyBatis-Plus持久层接口之SimpleQuery

文章目录 前言一、使用步骤1.引入 SimpleQuery 工具类2.使用 SimpleQuery 进行查询 二、使用提示三、功能详解1. keyMap1.1 方法签名1.2 参数说明1.3 使用示例1.4 使用提示 2. map2.1 方法签名2.2 参数说明2.3 使用示例2.4 使用提示 3. group3.1 方法签名3.2 参数说明3.3 使用示…...

一文带你了解乐观锁和悲观锁的本质区别!

文章目录 悲观锁是什么&#xff1f;乐观锁是什么&#xff1f;如何实现乐观锁&#xff1f;什么是CAS应用局限性ABA问题是什么&#xff1f; 悲观锁是什么&#xff1f; 悲观锁它总是假设最坏的情况&#xff0c;它会认为共享资源在每次被访问的时候就会出现线程安全问题&#xff0…...

Android Studio环境搭建(4.03)和报错解决记录

1.本地SDK包导入 安装好IDE以及下好SDK包后&#xff0c;先不要管IDE的引导配置&#xff0c;直接新建一个新工程&#xff0c;进到开发界面。 SDK路径配置&#xff1a;File---->>Other Settings---->>Default Project Structure 拷贝你SDK解压的路径来这&#xff0c;…...

基于协同过滤的电影推荐与大数据分析的可视化系统

基于协同过滤的电影推荐与大数据分析的可视化系统 在大数据时代&#xff0c;数据分析和可视化是从大量数据中提取有价值信息的关键步骤。本文将介绍如何使用Python进行数据爬取&#xff0c;Hive进行数据分析&#xff0c;ECharts进行数据可视化&#xff0c;以及基于协同过滤算法…...

修复vcruntime140.dll方法分享

修复vcruntime140.dll方法分享 最近在破解typora的时候出现了缺失vcruntime140.dll文件的报错导致软件启动失败。所以找了一番资料发现都不是很方便的处理&#xff0c;甚至有的dll处理工具还需要花钱&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff0c;我本来就是为…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...