鸿蒙-点击Notification通知并打开App的具体页面
意图通知
获取router事件中传递参数并跳转
目前点击通知消息打开应用的指定页面,通过为通知添加行为意图的方式。也就是在wants的parameters中设置自定义参数,然后在UIAbility的onNewWant或者onCreate方法中 解析配置的自定义参数信息判断跳转不同页面,参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/notification-with-wantagent-V5
在UIAbility根据传递的params不同,选择拉起不同的页面可参考:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-ui-widget-event-router-V5
import { NavBar } from '../component/NavBar';
import { notificationManager } from '@kit.NotificationKit';
import { common, wantAgent } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';@Component
@Entry
struct DemoNotification {@State TAG: string = '[PublishOperation]';@State DOMAIN_NUMBER: number = 0xFF00;@State wantAgentInfo: wantAgent.WantAgentInfo = {wants: [{bundleName: "com.example.yumi",abilityName: "EntryAbility"}],operationType: wantAgent.OperationType.START_ABILITY,requestCode: 100};onPageShow(): void {// 请求通知授权let context = getContext(this) as common.UIAbilityContext;notificationManager.isNotificationEnabled().then((data: boolean) => {hilog.info(this.DOMAIN_NUMBER, this.TAG, "isNotificationEnabled success, data: " + JSON.stringify(data));if (!data) {notificationManager.requestEnableNotification(context).then(() => {hilog.info(this.DOMAIN_NUMBER, this.TAG, `[ANS] requestEnableNotification success`);}).catch((err: BusinessError) => {if (1600004 == err.code) {hilog.error(this.DOMAIN_NUMBER, this.TAG,`[ANS] requestEnableNotification refused, code is ${err.code}, message is ${err.message}`);} else {hilog.error(this.DOMAIN_NUMBER, this.TAG,`[ANS] requestEnableNotification failed, code is ${err.code}, message is ${err.message}`);}});}}).catch((err: BusinessError) => {hilog.error(this.DOMAIN_NUMBER, this.TAG,`isNotificationEnabled fail, code is ${err.code}, message is ${err.message}`);});// 通知角标let badgeNumber: number = 10;notificationManager.setBadgeNumber(badgeNumber).then(() => {hilog.info(this.DOMAIN_NUMBER, this.TAG, `setBadgeNumber 10 success.`);badgeNumber = 11;notificationManager.setBadgeNumber(badgeNumber).then(() => {hilog.info(this.DOMAIN_NUMBER, this.TAG, `setBadgeNumber 11 success.`);});});}publishNotification() {let notificationRequest: notificationManager.NotificationRequest = {// 描述通知的请求id: 1, // 通知IDcontent: {// 通知内容notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // 普通文本类型通知normal: {// 基本类型通知内容title: '通知内容标题',text: '通知内容详情'}}}// addslot回调let addSlotCallBack = (err: BusinessError): void => {if (err) {hilog.info(this.DOMAIN_NUMBER, this.TAG, `addSlot failed, code is ${err.code}, message is ${err.message}`);} else {hilog.info(this.DOMAIN_NUMBER, this.TAG, `addSlot success`);}}notificationManager.addSlot(notificationManager.SlotType.SOCIAL_COMMUNICATION, addSlotCallBack);notificationManager.publish(notificationRequest).then(() => { // 发布通知console.info('publish success');}).catch((err: Error) => {console.error(`publish failed,message is ${err}`);});}async publishNotificationWant() {let wantAgentInfo: wantAgent.WantAgentInfo = {wants: [{bundleName: "com.example.yumi", // 自己应用的bundleNameabilityName: "EntryAbility",parameters: { page: 'view/Car' } // 自己点击通知需要跳转的页面}],operationType: wantAgent.OperationType.START_ABILITIES,requestCode: 1,}const wantAgentObj = await wantAgent.getWantAgent(wantAgentInfo)await notificationManager.publish({content: {notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: "测试标题",text: "测试内容",}},id: 1,wantAgent: wantAgentObj})}build() {Column() {NavBar({ title: '通知' })Button('发送文本类型通知').onClick(() => {this.publishNotification()})Button('发送通知-为通知添加行为意图').onClick(() => {this.publishNotificationWant()})}}
}
import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { router, Router, window } from '@kit.ArkUI';
import { DialogHelper } from '@pura/harmony-dialog';
import { AppUtil } from '@pura/harmony-utils'export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');AppUtil.init(this.context)}onDestroy(): void {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');}onWindowStageCreate(windowStage: window.WindowStage): void {// Main window is created, set main page for this abilityhilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');windowStage.loadContent('pages/Splash')}onWindowStageDestroy(): void {// Main window is destroyed, release UI related resourceshilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');}onForeground(): void {// Ability has brought to foregroundhilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');}onBackground(): void {// Ability has back to backgroundhilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');}onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onNewWant');//点击Notification通知并打开App的具体页面let page = want?.parameters?.page as stringrouter.pushUrl({url: page})console.log('want参数'+want?.parameters?.page)}
}
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
鸿蒙-点击Notification通知并打开App的具体页面
意图通知 获取router事件中传递参数并跳转 目前点击通知消息打开应用的指定页面,通过为通知添加行为意图的方式。也就是在wants的parameters中设置自定义参数,然后在UIAbility的onNewWant或者onCreate方法中 解析配置的自定义参数信息判断跳转不同页面&a…...
![](https://www.ngui.cc/images/no-images.jpg)
非科班转码第5年零241天
文章目录 非科班转码第5年零241天第一份工作鸭梨山大同事的帮助第二份工作新公司学到很多出海计划 非科班转码第5年零241天 第一份工作 2019年5月24日,我从机械工程转码后找到第一份工作——图像算法工程师,能得到这份工作纯属偶然,当时公司…...
![](https://www.ngui.cc/images/no-images.jpg)
数据库:MongoDB命令行帮助解释
MongoDB命令: mongodmongosmongoperrormongoexportmongofilesmongoimportmongorestoreMongostat MongoDB包中的核心组件包括: mongod 是 MongoDB 的核心服务器进程,负责数据存储和管理。mongos 是分片集群的路由进程,负责将请求路由到正确…...
![](https://www.ngui.cc/images/no-images.jpg)
MongoDB单机版安装
MongoDB单机版安装 在CentOS Linux release 7.9.2009 (Core)下安装MongoDB的步骤如下: 1 创建用户和组(可选,根据需要) 如果您希望以非root用户运行MongoDB服务,可以创建一个专用的用户和组。 groupadd mongodb us…...
![](https://www.ngui.cc/images/no-images.jpg)
Azure面试
文章目录 项目地址一、Azure Storage1. What are the benefits of Azure Storage? 二、汇总 项目地址 教程作者:教程地址: 代码仓库地址: 所用到的框架和插件: dbt airflow一、Azure Storage 1. What are the bene…...
![](https://i-blog.csdnimg.cn/direct/3ff9305643ac4c4780cb6553f5b32aaf.png#pic_center)
在.NET用C#将Word文档转换为HTML格式
将Word文档转换为HTML格式尤其具有显著的优势,它不仅能够确保文档内容在多种设备和平台上保持一致灵活的显示,还便于通过网络进行传播和集成到各种Web应用中。随着越来越多的企业和开发者寻求更灵活、更具兼容性的文件处理方式,.NET框架下的C…...
![](https://i-blog.csdnimg.cn/direct/84a57de61979405bad9f5359397b8eef.png)
macOS 安装JDK17
文章目录 前言介绍新特性下载安装1.下载完成后打开downloads 双击进行安装2.配置环境变量3.测试快速切换JDK 小结 前言 近期找开源软件,发现很多都已经使用JDK17springboot3 了,之前的JDK8已经被替换下场,所以今天就在本机安装了JDK17&#…...
![](https://www.ngui.cc/images/no-images.jpg)
Django SimpleUI 自定义功能实战
1. 引言 Django SimpleUI 是一个基于 Django 的后台管理界面美化工具,旨在帮助开发者快速构建现代化的后台管理系统。除了默认的功能外,SimpleUI 还支持高度自定义,开发者可以根据需求添加各种实用功能。本文将详细介绍如何在 Django SimpleUI 中实现自定义功能,包括数据同…...
![](https://www.ngui.cc/images/no-images.jpg)
C语言/C++自然序列重排列——相邻序号不相邻问题⭐
同类题目:C语言自然序列重排——相邻元素的差值集合恰好有 k 个不同的值。⭐⭐-CSDN博客 题目描述(难度⭐) 一场针对 n 学生的考试将在一个又长又窄的房间里举行,因此学生们将按某种顺序排成一行。老师怀疑相邻编号的学生…...
![](https://www.ngui.cc/images/no-images.jpg)
Spring boot面试题---- Spring boot项目运行原理
1.启动流程概述 Spring Boot 的启动是从一个带有main方法的主类开始的。这个主类通常会有一个@SpringBootApplication注解。这个注解是一个组合注解,它包含了@Configuration、@EnableAutoConfiguration和@ComponentScan。@Configuration注解表明这个类是一个配置类,它可以定义…...
![](https://i-blog.csdnimg.cn/img_convert/0a48df55127b4efcf55af7e3d11b66a3.png)
Qt/C++ 基于 QGraphicsView 的绘图软件 (附源码下载链接)
基于 Qt 的 QGraphicsView 绘图软件项目进行深入讲解,分析其核心代码与功能实现,帮助开发者理解 QGraphicsView 的用法。 项目概览 该项目实现了一个简单的绘图应用,用户可以在界面中创建和编辑矩形、椭圆、直线、多边形和文本等图形对象。功…...
![](https://www.ngui.cc/images/no-images.jpg)
如何使用 useMemo 和 memo 优化 React 应用性能?
使用 useMemo 和 memo 优化 React 应用性能 在构建复杂的 React 应用时,性能优化是确保应用流畅运行的关键。React 提供了多种工具来帮助开发者优化组件的渲染和计算逻辑,其中 useMemo 和 memo 是两个非常有用的 Hook。本文将详细介绍这两个工具的使用方…...
![](https://i-blog.csdnimg.cn/direct/3415a8162287437885679cb7a476d905.png)
数据结构(链表 哈希表)
在Python中,链表和哈希表都是常见的数据结构,可以用来存储和处理数据。 链表是一种线性数据结构,由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。链表可以用来实现栈、队列以及其他数据结构。Python中可…...
![](assets/03-13.png)
人工智能之深度学习_[4]-神经网络入门
神经网络基础 1 神经网络 深度学习神经网络就是大脑仿生,数据从输入到输出经过一层一层的神经元产生预测值的过程就是前向传播(也叫正向传播)。 前向传播涉及到人工神经元是如何工作的(也就是神经元的初始化、激活函数…...
![](https://i-blog.csdnimg.cn/direct/25bcf868914a490fb408dcccee374f68.png)
STM32之CubeMX图形化工具开发介绍(十七)
STM32F407 系列文章 - STM32CubeMX(十七) 目录 前言 一、CubeMX 二、下载安装 1.下载 2.安装 3.图解步骤 三、用户界面 1.项目配置 2.项目生成 3.项目文件解释 4.新建工程 5.查看原工程 四、FAQ 总结 前言 STMCube源自意法半导体…...
![](https://www.ngui.cc/images/no-images.jpg)
css3过渡总结
一、过渡的定义与作用 CSS3 过渡(Transitions)允许 CSS 属性在一定的时间区间内平滑地过渡,从一个值转变为另一个值。它能够让网页元素的状态变化更加自然、流畅,给用户带来更好的视觉体验。例如,当一个元素从隐藏状态…...
![](https://i-blog.csdnimg.cn/direct/e4261152bc7c41328268bdf92db8e5ac.png)
latin1_swedish_ci(latin1 不支持存储中文、日文、韩文等多字节字符)
文章目录 1、SHOW TABLE STATUS WHERE Name batch_version;2、latin1_swedish_ci使用场景注意事项修改字符集和排序规则修改表的字符集和排序规则修改列的字符集和排序规则修改数据库的默认字符集和排序规则 3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 C…...
![](https://i-blog.csdnimg.cn/direct/82bf9044e2db4d419604de2d118da9bb.jpeg)
C语言编程笔记:文件处理的艺术
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一、为什么要用文件二、文件的分…...
![](https://www.ngui.cc/images/no-images.jpg)
[创业之路-255]:《华为数字化转型之道》-1-主要章节、核心内容、核心思想
目录 前言:数字化转型对于企业而言,是一种全方位的变革 一、主要章节 1、认知篇(第1~2章)- Why 2、方法篇(第3~5章)- How 3、实践篇(第6~10章)- 实践 4、平台篇(第…...
![](https://i-blog.csdnimg.cn/img_convert/aeaaad815b5b8e29bbdae585a61e8245.png)
《汽车维修技师》是什么级别的期刊?是正规期刊吗?能评职称吗?
问题解答: 问:《汽车维修技师》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《汽车维修技师》级别? 答:省级。主管单位:北方联合出版传媒(…...
![](https://i-blog.csdnimg.cn/img_convert/ed7c8fb0cddafc772bc423cbd2d600a5.png)
2024 京东零售技术年度总结
每一次回望,都为了更好地前行。 2024 年,京东零售技术在全面助力业务发展的同时,在大模型应用、智能供应链、端技术、XR 体验等多个方向深入探索。京东 APP 完成阶段性重要改版,打造“又好又便宜”的优质体验;国补专区…...
![](https://i-blog.csdnimg.cn/direct/212b793cdb434975bc16b2d0228dadea.jpeg#pic_center)
PyTorch使用教程(8)-一文了解torchvision
一、什么是torchvision torchvision提供了丰富的功能,主要包括数据集、模型、转换工具和实用方法四大模块。数据集模块内置了多种广泛使用的图像和视频数据集,如ImageNet、CIFAR-10、MNIST等,方便开发者进行训练和评估。模型模块封装了大量经…...
![](https://www.ngui.cc/images/no-images.jpg)
如何在不暴露MinIO地址的情况下,用Spring Boot与KKFileView实现文件预览
在现代Web应用中,文件预览是一项常见且重要的功能。它允许用户在不上传或下载文件的情况下,直接在浏览器中查看文件内容。然而,直接将文件存储服务(如MinIO)暴露给前端可能会带来安全风险。本文将介绍如何在不暴露MinI…...
![](https://i-blog.csdnimg.cn/direct/5684fd70514c412f93330303da7c832f.png)
ICMP协议和ICMP重定向攻击
✍作者:柒烨带你飞 💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。 📜系列专栏:网络安全从菜鸟到飞鸟的逆袭 目录 一,ICMP基本概念二&…...
![](https://i-blog.csdnimg.cn/direct/c24be773fd8842bea9858492a1815f92.png)
leetcode203-移除链表元素
leetcode203 什么是链表 之前不懂链表的数据结构,一看到链表的题目就看不明白 链表是通过next指针来将每个节点连接起来的,题目中给的链表是单向链表,有两个值,一个val表示值,一个next:表示连接的下一个…...
![](https://www.ngui.cc/images/no-images.jpg)
Rust 中构建 RESTful API
在 Rust 中构建 RESTful API,你可以选择几个不同的框架。每个框架有不同的特点、优缺点和适用场景,下面我将介绍几个常用的 Rust Web 框架,并分析它们的优缺点。 Actix Web 简介: Actix Web 是一个非常高性能的 Web 框架…...
![](https://i-blog.csdnimg.cn/direct/5d9c3fe9aa8b4185b07e0801391045f0.png)
Sqlmap入门
原理 在owasp发布的top10 漏洞里面,注入漏洞一直是危害排名第一,其中数据库注入漏洞是危害的。 当攻击者发送的sql语句被sql解释器执行,通过执行这些恶意语句欺骗数据库执行,导致数据库信息泄漏 分类 按注入类型 常见的sql注入…...
![](https://i-blog.csdnimg.cn/img_convert/0f03f695fd7a903ad8ec984a854f8f10.png)
迈向 “全能管家” 之路:机器人距离终极蜕变还需几步?
【图片来源于网络,侵删】 这是2024年初Figure公司展示的人形机器人Figure 01,他可以通过观看人类的示范视频,在10小时内经过训练学会煮咖啡,并且这个过程是完全自主没有人为干涉的! 【图片来源于网络,侵删】…...
![](https://i-blog.csdnimg.cn/blog_migrate/25e1df44e5431228dbdad52a4f65204d.png)
移动端 REM 适配
移动端 REM 适配 Vant 中的样式默认使用 px 作为单位,如果需要使用 rem 单位,推荐使用以下两个工具: postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 remlib-flexible 用于设置 rem 基准值 下面我们分别将这两个工具配…...
![](https://www.ngui.cc/images/no-images.jpg)
逐笔成交逐笔委托Level2高频数据下载和分析:20241230
逐笔委托逐笔成交下载 链接: https://pan.baidu.com/s/11Tdq06bbYX4ID9dEaiv_lQ?pwdcge6 提取码: cge6 Level2逐笔成交逐笔委托数据分享下载 利用Level2的逐笔交易和委托数据,这种以毫秒为单位的详细信息能揭露众多关键信息,如庄家意图、伪装行为&…...
衡水建设局网站首页/视频推广一条多少钱
letswave教程:脑电数据图形绘制、批处理以及脚本生成1 单主题图形生成1.1 打开图形模块1.2 创建子图1.3 添加内容1.4 设置轴参数1.5 导出图形2 多主题图形生成2.1 打开图形模块2.2 创建子图2.3 添加内容2.4 设置轴参数3 批处理3.1 数据导入3.2 删除无用的通道3.3 过…...
网站出售html/新闻近期大事件
一:Criteria查询(单表条件查询)1、Hibernate 无语句面向对象查询1、基本查询2、条件查询3、分页 查询4、设置查询聚合函数5、排序查询6、离线查询对象1、传统的Criteria查询(非离线) 2、离线的Criteria查询 3、测试...
![](/images/no-images.jpg)
哈尔滨快速建站点击查看/成都网络营销公司排名
本文主要和大家分享react轮播图组件react-slider-light详解,希望能帮助到大家。react-slider-lighta lightweight Slider component built with react.一个轻量级的 react 轮播组件Table of ContentsFeatures特性Demos演示Getting Started快速开始InstallUseDevelop…...
![](https://img-blog.csdnimg.cn/20191121170540568.png)
静态旅游网站/网站建站哪家公司好
Spring Boot 整合NoSQL NoSQL 是指非关系型数据库,非关系型数据库和关系型数据库两者存在许多显著的不同点,其中最重要的是NoSQL 不使用SQL 作为查询语言。其数据存储可以不需要固定的表格模式,一般都有水平可扩展性的特征。NoSQL 主要有如下…...
![](/images/no-images.jpg)
个人网站制作总体设计/热搜榜上2023年热搜
首先,看一下前端工程师的核心技能有:• HTML编写网页结构• CSS美化页面盒子模型,布局方式(flexbox,grid)• JavaScript事件,交互,数据处理基础语法,ES新规范• 网络基础…...
![](https://images.cnblogs.com/cnblogs_com/liuning8023/201112/201112012312062066.jpg)
电脑网页无法打开是什么原因/北京seo顾问
本文内容 引入IHttpModule 概述创建自定义 HTTP 模块的步骤演示创建自定义 HTTP 模块 HTTP 模块的工作方式 HTTP 模块与 Global.asax 文件参考资料引入 本文在 VS 2008 和 IIS 6 环境下概述如何利用 IHttpModule 自定义 HTTP 模块。 当我们在 VS 2008 里新建一个 Web 应…...