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%')}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/37246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024 Parallels Desktop for Mac 功能介绍

Parallels Desktop的简介 Parallels Desktop是一款由Parallels公司开发的桌面虚拟化软件&#xff0c;它允许用户在Mac上运行Windows和其他操作系统。通过强大的技术支持&#xff0c;用户无需重新启动电脑即可在Mac上运行Windows应用程序&#xff0c;实现了真正的无缝切换。 二…

普元EOS学习笔记-创建精简应用

前言 本文依旧基于EOS8.3进行描述。 在上一篇文章《EOS8.3精简版安装》中&#xff0c;我们了解到普元预编译好的EOS的精简版压缩包&#xff0c;安装后&#xff0c;只能进行低开&#xff0c;而无法高开。 EOS精简版的高开方式是使用EOS开发工具提供的IDE&#xff0c;创建一个…

东软睿驰总裁兼CTO杜强受邀出席 CICV 2024智能网联汽车技术首脑(CTO)闭门峰会

近日&#xff0c;第十一届国际智能网联汽车技术年会&#xff08;CICV 2024&#xff09;在北京举办&#xff0c;会议期间组织智能网联汽车技术首脑&#xff08;CTO&#xff09;闭门峰会&#xff0c;邀请40余位技术领袖围绕智能网联汽车产业生态建设以及智能网联汽车数据、算力和…

SQL语句查询Cache数据库中数据时对时间怎样转换

使用东华医为HIS系统的用户都知道&#xff0c;Cache数据库中对于日期的存储为几万的数字&#xff0c;比如&#xff0c;今天就是相对于1841年1月1日的第多少万天&#xff0c;以这种形式进行表示&#xff1b;对于时间&#xff0c;也是以数字形式存储&#xff0c;比如&#xff0c;…

Python的numpy简单使用

1.可以调用引入numpy里面的函数&#xff0c;如add可以把俩数相加&#xff0c;也可以创建一个数组arr&#xff0c;arr.shape是数组arr的属性&#xff0c;如果后有跟&#xff08;&#xff09;就是里面的一个函数 type()函数可以知道里面是什么类型 变量.shape可以知道这个变量是…

BLEU和SPICE:机器翻译与图像描述的自动评估方法详解

BLEU和SPICE&#xff1a;机器翻译与图像描述的自动评估方法详解 在机器翻译和图像描述领域&#xff0c;评估模型性能是一个重要且复杂的问题。为了有效地评估机器生成的文本质量&#xff0c;我们需要一种自动、快速且可靠的方法。BLEU&#xff08;Bilingual Evaluation Unders…

基于决策树的旋转机械故障诊断(Python)

前置文章&#xff1a; 将一维机械振动信号构造为训练集和测试集&#xff08;Python&#xff09; https://mp.weixin.qq.com/s/DTKjBo6_WAQ7bUPZEdB1TA 旋转机械振动信号特征提取&#xff08;Python&#xff09; https://mp.weixin.qq.com/s/VwvzTzE-pacxqb9rs8hEVw import…

菲尔兹奖得主测试GPT-4o,经典过河难题未能破解!最强Claude 3.5回答离谱!

目录 01 大言模型能否解决「狼-山羊-卷心菜」经典过河难题&#xff1f; 02 加大难度&#xff1a;100只鸡、1000只鸡如何&#xff1f; 01 大言模型能否解决「狼-山羊-卷心菜」经典过河难题&#xff1f; 最近&#xff0c;菲尔兹奖得主Timothy Gowers分享了他测试GPT-4o的经历&a…

游戏推荐: 植物大战僵尸杂交版

下载地址网上一搜就有. 安装就能玩. 2是显血. 4显示植物血, 5是加速. 都是左手主键盘的按钮, 再按是取消. 比较刺激: ps: 设置里面还能打开自动收集阳光和金币.

视频融合共享平台LntonCVS统一视频接入平台智慧安防应用方案

安防视频监控平台LntonCVS是一款拥有强大拓展性和灵活部署能力的综合管理平台。它支持多种主流标准协议&#xff0c;包括国标GB28181、RTSP/Onvif、RTMP等&#xff0c;同时兼容各厂家的私有协议和SDK&#xff0c;如海康Ehome、海大宇等。LntonCVS不仅具备传统安防视频监控功能&…

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

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

遥远星辰中的觉醒:超大质量黑洞的苏醒

遥远星辰中的觉醒&#xff1a;超大质量黑洞的苏醒 在浩渺无垠的宇宙中&#xff0c;星辰的闪烁仿佛是时间的涟漪&#xff0c;穿越亿万年的距离&#xff0c;抵达我们的眼眸。而在这片星辰大海的深处&#xff0c;一个惊人的现象正在悄然上演——距离地球3.6亿光年之遥的星系中&am…

【C++】空指针访问成员函数

空指针访问成员函数 C中空指针也是可以调用成员函数的&#xff0c;但是也要注意有没有用到this指针 如果用到this指针&#xff0c;需要加以判断保证代码的健壮性 class Animal { public:void fun1() {//正常的成员函数}void fun2() {if (this NULL) {return;//如果没有这个…

Django 一对一关系

作用&#xff1a; 两个数据库表建立外键关系当外键表的数据被删除时&#xff0c;主表的数据也会一并删除。 1&#xff0c;添加表模型 Test/app8/views.pyfrom django.db import modelsclass User(models.Model):username models.CharField(max_length50, uniqueTrue)email …

【代码随想录训练营】【Day 65】【图论-2】| 卡码 99

【代码随想录训练营】【Day 65】【图论-2】| 卡码 99 需强化知识点 深度搜索和广度搜索 题目 99. 岛屿数量 思想&#xff1a;遍历到为1的节点&#xff0c;再搜索标记&#xff0c;每遇到新的陆地节点&#xff0c;增加计数 深度搜索广度搜索&#xff1a;此处用 [] 作为待遍…

前端面试必备:深入解析Vue.js中v-if与v-show的原理与应用

前言 在Vue.js中&#xff0c;条件渲染是一个核心的概念&#xff0c;它允许我们根据数据的状态来动态地显示或隐藏元素。v-if和v-show是Vue.js提供的两个最常用的条件渲染指令&#xff0c;它们在表面上看起来很相似&#xff0c;但实际上在背后的工作原理和适用场景上有着显著的…

2024年度潍坊市职业技能大赛 —网络搭建(网络与信息安全管理员)职业技能竞赛赛项规程

2024年度潍坊市职业技能大赛 —网络搭建&#xff08;网络与信息安全管理员&#xff09;职业技能竞赛赛项技术文件................................ 一、赛项简介...................................... 3 二、竞赛规程...................................... 3 &#xff08…

【Linux系统】进程替换 自主实现shell(简易版)

1.先看代码 && 现象 我们用exec*函数执行新的程序&#xff0c; exec*系列的函数&#xff0c;执行完毕后&#xff0c;后续的代码不见了&#xff0c;因为被替换了。 execl的返回值可以不关心了&#xff0c;只要替换成功&#xff0c;就不会向后继续运行&#xff0c;只要…

第5讲:建立自己的C函数库,js调用自己写的C/C++函数,并包含依赖C/C++第三方静态库。

在javascript中&#xff0c;Array有很多内置的功能&#xff0c;比如Array.map&#xff0c;Array.filter&#xff0c;Array.find等等&#xff0c;能用内置的功能就用内置的功能&#xff0c;最好不要自己实现一套&#xff0c;因为底层调用的可能压根就不是js语言本身&#xff0c;…

[AIGC] awk 和 sed

在Unix系统中&#xff0c;有两种强大的用于文本操作的命令工具&#xff0c;它们就是awk和sed。这两个命令工具是每个Linux用户必备的知识之一&#xff0c;尤其对于需要进行文本处理或数据抽取的开发者来说&#xff0c;更加重要。 在实际开发过程中&#xff0c;我们常常需要处理…