鸿蒙OS开发实例:【通知消息】

背景

HarmonyOS 论坛中有研发人员求助,反馈通知没有没有声音,因此在真机上验证了一下,果不其然,没有通知的提示音,后来解决办法也非常简单,在手机设置应用中,将可以打开的通知提示统统改为铃声。

问题是解决了,但有必要分享一下HarmonyOS中的通知问题

实践总结

  1. slotType的设置,一定要放在 NotificationRequest 结构体中,使用NotificationManager.addSlot 这个函数是不起作用的
  2. NOTIFICATION_CONTENT_PICTURE 这个类型的通知,并不会展示图片
  3. NOTIFICATION_CONTENT_CONVERSATION 这个类型其实是不支持的
  4. 官方指导 图片类型 通知样例参数在 HarmonyOS SDK API 9上边使用错误

错误参数:pixelFormat:"ARGB_8888"

let opts = { editable:true, pixelFormat:"ARGB_8888", size: {height:100, width : 150}};
 

更正:pixelFormat: image.PixelMapFormat.RGBA_8888, 即 枚举类型

let opts = { editable:true, pixelFormat: image.PixelMapFormat.RGBA_8888, size: {height:100, width : 150}};

准备条件

  1. HarmonyOS 4.0
  2. HarmonyOS SDK API 9

实践功能介绍

备注: 参照[指导]gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md

搜狗高速浏览器截图20240326151547.png

  1. NOTIFICATION_CONTENT_BASIC_TEXT(普通文本类型)
  2. NOTIFICATION_CONTENT_LONG_TEXT (长文本类型)
  3. NOTIFICATION_CONTENT_MULTILINE (多行文本类型)
  4. NOTIFICATION_CONTENT_PICTURE (图片类型)
  5. NOTIFICATION_CONTENT_CONVERSATION (会话类型)
  6. 进度条类型 (个人观点:这个不是一个类型,仅仅是基于基础通知类型从而实现的一个功能)

注意:  NOTIFICATION_CONTENT_CONVERSATION 在SDK中出现了,官方指导中没有说明

样式说明

NOTIFICATION_CONTENT_BASIC_TEXT(普通文本类型)

Screenshot_20240111003154588.png

NOTIFICATION_CONTENT_LONG_TEXT (长文本类型)

  • 默认状态

image.png

  • 展开状态

image.png

NOTIFICATION_CONTENT_MULTILINE (多行文本类型)

默认状态

Screenshot_20240111003225488.png

展开状态

Screenshot_20240111003227907.png

NOTIFICATION_CONTENT_PICTURE (图片类型)

Screenshot_20240111003216907.png

官网指导的样子

0000000000011111111.20231227152829.81254619190493111932640333584744.png

进度条通知

  • 准备下载

Screenshot_20240110233106318.png

  • 下载中

image.png

  • 下载完成

Screenshot_20240110232328702.png

  • 下载失败

Screenshot_20240110232335533.png

SlotType

这个属性功能真正使用时间,是今天才开始。

这个属性功能,根据官方指导,有两种设置方式

第一种

let notificationRequest = {id: 1, //可以按照自己应用实际的情况,生成其它数字slotType: NotificationManager.SlotType.SOCIAL_COMMUNICATION //可以选择其它类型
}NotificationManager.publish(notificationRequest)

第二种

let notificationRequest = {......
}function addSlotCallBack(err) {if (err) {console.info("addSlot failed " + JSON.stringify(err));} else {console.info("addSlot success");}
}
NotificationManager.addSlot(NotificationManager.SlotType.SOCIAL_COMMUNICATION, addSlotCallBack);NotificationManager.publish(notificationRequest)

SlotType 具体功能现象

根据第1种实现方式,如果没有slotType这个字段,默认值其实是其它类型,在代码层面没有表现出来,但是通过用户设置交互层面,可以看到表象

场景设定

"普通文本", "长文本", "多行类型" 统一指定slotType为NotificationManager.SlotType.SOCIAL_COMMUNICATION

“带图片类型” 不设置slotType

真机场景查看

设置 -> 通知和状态栏 -> 选择自己的应用(实践应用:HarmonyLearn)-> 找一下有没有类别项,如果没有,可以根据本实践主页面进一下相关操作

实践主页样式

Screenshot_20240110231925234.png

验证过程

  1. 点击“带图片类型”, 按照“真机场景查看” 的步骤操作,应该可以看到 “类别” 菜单了,但子菜单只有一个 “社交通讯”

Screenshot_20240110212600964.png

2.  点击"普通文本" / "长文本" / "多行类型", 按照“真机场景查看” 的步骤操作,应该可以看到 “类别” 菜单中出现了一个“其他”子菜单

Screenshot_20240110211624413.png

铃声行为设定

通过“验证过程”,已可以了解到,如果要设置通知铃声,可以进入“社交通讯” & “其它” 里边去详细设置

Screenshot_20240110212856214.png

Screenshot_20240110211933266.png

横幅样式

在阅读官方指导过程中,“横幅通知” 这个词应该见到过,它的具体表现是什么样子呢?

效果图

Screenshot_20240110212832714.png

如何设置

设置 -> 通知和状态栏 -> 选择自己的应用(实践应用:HarmonyLearn -> 提醒方式 -> "横幅通知"

鸿蒙开发岗位需要掌握那些核心要领?

目前还有很多小伙伴不知道要学习哪些鸿蒙技术?不知道重点掌握哪些?为了避免学习时频繁踩坑,最终浪费大量时间的。

自己学习时必须要有一份实用的鸿蒙(Harmony NEXT)资料非常有必要。 这里我推荐,根据鸿蒙开发官网梳理与华为内部人员的分享总结出的开发文档。内容包含了:【ArkTS、ArkUI、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战】等技术知识点。

废话就不多说了,接下来好好看下这份资料。

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。鸿蒙OpenHarmony知识←前往。下面是鸿蒙开发的学习路线图。

针对鸿蒙成长路线打造的鸿蒙学习文档。鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

其中内容包含:

《鸿蒙开发基础》鸿蒙OpenHarmony知识←前往

  1. ArkTS语言
  2. 安装DevEco Studio
  3. 运用你的第一个ArkTS应用
  4. ArkUI声明式UI开发
  5. .……

《鸿蒙开发进阶》鸿蒙OpenHarmony知识←前往

  1. Stage模型入门
  2. 网络管理
  3. 数据管理
  4. 电话服务
  5. 分布式应用开发
  6. 通知与窗口管理
  7. 多媒体技术
  8. 安全技能
  9. 任务管理
  10. WebGL
  11. 国际化开发
  12. 应用测试
  13. DFX面向未来设计
  14. 鸿蒙系统移植和裁剪定制
  15. ……

《鸿蒙开发实战》鸿蒙OpenHarmony知识←前往

  1. ArkTS实践
  2. UIAbility应用
  3. 网络案例
  4. ……

最后

鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

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

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

相关文章

告别繁琐代码,只需简单拖拽,便可从0到1开发!

告别繁琐代码,拥抱科技未来!只需简单拖拽,便可从0到1开发!代码即刻生成,一键下载,轻松上手。我们的低代码平台,不仅高效便捷,更完全开源,让你自由探索编程的无限可能&…

利用DNDC模型分析温室气体排放的建模方法与实践

碳循环的精确模拟是实现“双碳”行动的关键。DNDC(Denitrification-Decomposition,反硝化-分解模型)是目前国际上最为成功的模拟生物地球化学循环的模型之一,自开发以来,经过不断完善和改进,从模拟简单的农…

算法—递归逆序栈、排序栈

递归和栈 1. 递归逆序栈2. 递归排序栈 1. 递归逆序栈 只用递归逆序一个栈&#xff0c;时间复杂度O(n^2) // 栈底元素移除掉&#xff0c;上面的元素盖下来 // 返回移除掉的栈底元素 public static int bottomOut(Stack<Integer> stack) {int ans stack.pop();if (stack…

MySQL TDE 透明数据加密 知识总结

目录 一、存储加密说明 二、TDE概述 三、MySQL对TDE支持情况 四、注意事项 一、存储加密说明 MySQL数据库存储加密有多种方式可供选择&#xff0c;主要分为两大类&#xff1a; 利用字段加密&#xff0c;在对数据库存储/读取时进行加密/解密操作&#xff0c;需要用户修改应…

设计模式-装饰者模式在Java中使用实例-打印发票装饰抬头和脚注

场景 设计模式-装饰者模式在Java中的使用示例&#xff1a; 设计模式-装饰者模式在Java中的使用示例_java装饰者模式例子-CSDN博客 上面装饰器的调用示例如下 AbstarctComputer computer;//要买1台电脑computer new BaseComputer();//加一个内存条computer new MemoryDecor…

【面试专题】Spring高频面试题

1.Spring应该很熟悉吧&#xff1f;来介绍下你的Spring的理解 有些同学可能会抢答&#xff0c;不熟悉!!! 好了&#xff0c;不开玩笑&#xff0c;面对这个问题我们应该怎么来回答呢&#xff1f;我们给大家梳理这个几个维度来回答 1.1 Spring的发展历程 先介绍Spring是怎么来的…

密码学 总结

群 环 域 群 group G是一个集合&#xff0c;在此集合上定义代数运算*&#xff0c;若满足下列公理&#xff0c;则称G为群。 1.封闭性 a ∈ G , b ∈ G a\in G,b\in G a∈G,b∈G> a ∗ b ∈ G a*b\in G a∗b∈G 2.G中有恒等元素e&#xff0c;使得任何元素与e运算均为元素本…

鸿蒙(HarmonyOS)ArkTs语言基础教程开发准备

本文档适用于HarmonyOS应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用&#xff08;如下图所示&#xff09;&#xff0c;快速了解工程目录的主要文件&#xff0c;熟悉HarmonyOS应用开发流程。 在开始之前&#xff0c;您需要了解有关HarmonyOS应用的一些基本概…

【LAMMPS学习】六、LAMMPS可选包(2)可用软件包详情

6、LAMMPS可选包 本节概述了扩展 LAMMPS 功能的可选包。包是启用一组特定功能的文件组。例如&#xff0c;分子系统的力场或刚体约束都在封装中。您可以通过在 LAMMPS 发行版的 src 目录中键入“make package”来查看所有包的列表以及用于管理它们的“make”命令。构建包页面提…

python 移位运算符

左移运算符<< 示例a<<b 表示把a的二进制位向左移动b位&#xff0c;高位溢出丢弃&#xff0c;低位补0&#xff0c;结果是a乘以2的b次方 a21 print(a*2**3)#168 print(a<<3)#168 ba<<3 print(bin(a))#0b10101 二进制为10101 print(bin(b))#0b10101000 …

【C++学习(27)】一个c++类的实例“多线程“运行的例子

一个类本身并不直接“用于多线程运行”。但是&#xff0c;类的实例&#xff08;即对象&#xff09;可以在多线程环境中被使用&#xff0c;并且类的设计可以影响它在多线程环境中的表现和易用性。 在多线程编程中&#xff0c;重要的是要理解线程安全和并发控制的概念。线程安全…

誉天华为认证存储HCIE课程怎么样

HCIA-Storage 课程介绍课程适合转行想进入IT行业者、零基础学员、IT从业人员、存储爱好者等 实验环境全真机&#xff0c;练习时间自由&#xff0c;7*24开机&#xff0c;可以随时通过远程连接进行试验课程内容 存储发展历史 存储硬件介绍 硬盘接口介绍 RAID技术 RAID2.…

解码视频流在opengl中的贴图投影计算

解码视频流在opengl中的贴图投影计算 修改顶点着色器cpp 文件放大缩小 我们把视频当成纹理,首先要确定贴入的坐标&#xff0c;原始坐标如下所示 static float vertices[] {// ---- 位置 ---- ---- 颜色 ---- - 纹理坐标 -1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f…

为BUG编程:函数重载的烦恼 char *匹配bool而不是string

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 这是一个BUG。 运行环境为linu…

表单全选反选(前端)

1.Html和JavaScript <table><tr><th class"allCheck"><input type"checkbox" name"" id"checkAll"> <span class"all">全选</span></th><th>商品</th><th>商…

【成功案例】间隔数月双团伙先后利用某ERP0day实施入侵和勒索的解密恢复项目

1.背景 在2024年3月23日&#xff0c;我们的Solar应急响应团队&#xff08;以下简称Solar团队&#xff09;应某公司之邀&#xff0c;介入处理了一起财务系统服务器遭受黑客攻击的事件。该事件导致服务器上大量文件被加密。我们的团队迅速获取了一个被加密的文件&#xff0c;并立…

深度剖析:计算机集群在大数据体系中的关键角色和技术要点

什么是计算机集群&#xff1f; 计算机集群是一组相互连接的计算机&#xff08;服务器&#xff09;&#xff0c;它们协同工作以完成共同的任务。集群中的每个计算机节点都可以独立运行&#xff0c;但它们通过网络连接在一起&#xff0c;以实现更高的可靠性、性能和可扩展性。 典…

多图详细教你注册Google(Gmail)新账号,常见问题和注意事项

对于做外贸&#xff0c;或者需要和外国客户、朋友沟通的小伙伴来说&#xff0c;一个Google账号&#xff08;也就是Gmail账号&#xff0c;下述统一用Google账号来表述&#xff09;是非常必要的&#xff0c;一方面是通过Gmail邮箱收发邮件、沟通往来&#xff0c;另一个方面是很多…

高性能RestTemplate连接池封装配置实战

高性能RestTemplate连接池封装配置实战 package net.xdclass.config;import org.apache.http.client.HttpClient; import org.apache.http.client.config.RequestConfig; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org…

linux安装多个版本的java

linux安装多个版本的java如何配置 jenkins 高版本已经不支持java8了&#xff0c;低版本插件安装问题很多。 jenkins 需要java17&#xff0c;研发程序需要使用java8 https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.401.1/jenkins.war https://download.oracle.…