鸿蒙 DevEcoStudio:发布进度条通知

news2024/9/21 2:39:07
使用notificationManager及wantAgent实现功能


import notificationManager from '@ohos.notificationManager'
import wantAgent from '@ohos.app.ability.wantAgent'
@Entry
@Component
struct Index {
  @State message: string = '发布进度条通知'
  progressValue: number=0
  async publicDownloadNotiication(){
    // 导入模块notificationManager
    // notificationManager
    //行为意图
    let wantInfo:wantAgent.WantAgentInfo={
      wants:[
        {
          bundleName:'com.example.myapplication',  //跳转哪个应用
          abilityName:'EntryAbility'  //跳转应用后哪个ability
        } //使用大括号封装不同的功能
      ],
      operationType:wantAgent.OperationType.START_ABILITY,  //START_ABILITY 启动ability
      requestCode:0
    }
    //创建实例对象
    let wantInstance=await wantAgent.getWantAgent(wantInfo)
    let isSupport=notificationManager.isSupportTemplate('downloadTemplate')  //当前系统是否支持
    .then(()=>{
      console.log('成功')
    })
    .catch(()=>{
      console.log('失败')
    })
    if (!isSupport) {
      return
    }
    let template={
      name:'downloadTemplate', //设置进度条
      data:{
        progressValue:this.progressValue,
        progressMaxValue:100  //设置一个最大值progressMaxValue
      }
    }
    let notificationRequest:notificationManager.NotificationRequest={
      id:1,
      template:template,  //加入进度条,由普通通知变为有进度条的
      wantAgent:wantInstance,
      content:{
        contentType:notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, //设置普通通知
        normal:{
          title:'下载中',
          text:'',
          additionalText:`${this.progressValue}%`  //进度百分之多少,引号使用Tab键上边的那个波浪键
        }
      }
    }
    notificationManager.publish(notificationRequest)
  }
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(()=>{
            // 添加一个定时器,模拟每过5s进度条增加20%的动态效果
            this.publicDownloadNotiication()
            let taskid=setInterval(()=>{
              if (this.progressValue>=80) {
                clearInterval(taskid)   //clearInterval清除
              }
              this.progressValue+=20
              this.publicDownloadNotiication()
            },5000)  //5s
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

实际效果图:

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

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

相关文章

【数据结构(邓俊辉)学习笔记】二叉树02——遍历

文章目录 0.概述1. 先序遍历1.1 递归版1.1.1 实现1.1.2 时间复杂度1.1.3 问题 1.2 迭代版11.3 迭代版21.3.1 思路1.3.2 实现1.3.3 实例 2. 中序遍历2.1 递归形式2.2 迭代形式2.2.1 观察2.2.2 思路(抽象总结)2.2.3 构思 实现2.2.4 分摊分析 3. 后序遍历3…

单条16g和双条8g哪个好

单条16g和双条8g各有优劣,具体选择要根据个人需求和电脑配置来决定。 以下是一些参考信息: •单条16g内存的价格比双条8g内存的价格低,而且16g的内存容量大,一条内存十分的方便。 •两条8g内存可以组成双通道,电脑运行速度要快一些。 •对于普通使用电脑的人群与热衷于…

linux下的实时同步服务简介与实验(sersync+nfs+rsync)

目录 实时同步是什么定时同步的缺陷实时同步简介 Sersync简介rsyncinotify-tools与rsyncsersync架构的区别? SerSync工作流程SerSync同步架构Sersync配置详解执行文件配置文件 NFSSersyncRsync实时同步服务实验0. 实验简介1. 实验架构2. 实验环境3. 实验步骤front主…

【调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件】

调试笔记-系列文章目录 调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 文章目录 调试笔记-系列文章目录调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 前言一、调试环境操作系统:Ubuntu 22.04.4 LTS编译环境调试目标 二、调…

etcd基础知识总结

文章目录 核心概念什么是etcd为什么需要etcd分布式中CAP理论etcd中常用的术语etcd的特性etcd的应用场景etcd的核心架构小结 etcd搭建小结 Etcdctl小结 etcd网关和grpc-GetwayEtcd 网关模式grpc-Geteway小结 etcd读请求执行流程Etcd 写请求执行流程写请求之QuotaKVServer模块写请…

晶圆厂的PE转客户工程师前景怎么样?

知识星球(星球名: 芯片制造与封测技术社区,星球号: 63559049)里的学员问: 目前在晶圆厂做PE,倒班oncall压力太大把身体搞坏了,现在有一个design house的CE客户工程师的offer&…

绘唐科技绘唐ai工具邀请码

绘唐科技绘唐ai工具邀请码 绘唐AI工具 https://qvfbz6lhqnd.feishu.cn/wiki/QBr4wOAz2ilF4NknrqbcoKRhn2c TensorFlow是一个开源的机器学习框架,由Google开发并维护。它提供了一个灵活且高效的接口,用于构建和训练各种机器学习模型。 TensorFlow的基本概念包括: 1. 张量(…

Qt Creator(1)【概述篇】

阅读导航 引言一、Qt概述1. 什么是Qt2. Qt的发展史3. Qt支持的平台4. Qt的优点5. Qt的应用场景 二、Qt下载安装 引言 在探索编程和软件开发的旅程中,我们已经奠定了坚实的基础,通过学习C语言和C,我们不仅掌握了结构化编程和面向对象编程的核…

[数组查找]2.图解二分查找及其代码实现

二分查找 二分查找也是一种在数组中查找数据的算法。和线性查找不同,它只能查找已经排好序的数据。二分查找通过比较数组中间的数据与目标数据的大小,可以得知目标数据是在数组的左边还是右边。因此,比较一次就可以把查找范围缩小一半。重复执…

天工 AI 3.0,彻底爆了!

作为一名 AI 博主,深知一个优秀的AI工具能大大提高我们日常学习、工作效率,比如我之前学习一些AI方向的算法知识,需要搜索大量博客、付费购买专业课程等。光在找到有用的资料就耗费不少时间了,更何况需要阅读全文去整理汇总&#…

1.2 程序员职业发展

目录 1 程序员职业发展方向 2 计算机研究生为何青睐AI赛道 1 程序员职业发展方向 2 计算机研究生为何青睐AI赛道 计算机类研究生,大部分以人工智能作为主赛道,原因如下: 广阔的就业前景:人工智能是当今科技发展的前沿领域&…

专业渗透测试 Phpsploit-Framework(PSF)框架软件小白入门教程(十二)

本系列课程,将重点讲解Phpsploit-Framework框架软件的基础使用! 本文章仅提供学习,切勿将其用于不法手段! 接上一篇文章内容,讲述如何进行Phpsploit-Framework软件的基础使用和二次开发。 我们,继续讲一…

SVM兵王问题

1.流程 前面六个就是棋子的位置,draw就是逼和,后面的数字six就代表,白棋最少用六步就能将死对方。然后呢,可以看一下最后一个有几种情况: 2.交叉测试 leave one out: 留一个样本作测试集,其余…

VUE3.0学习-模版语法

安装Node.js的过程相对直接,以下是详细的步骤指导,适用于大多数操作系统: ### 1. 访问Node.js官方网站 首先,打开浏览器,访问 [Node.js 官方网站](https://nodejs.org/)。 ### 2. 选择合适的版本下载 在Node.js官网上…

精品PPT | 精益生产管理中MES系统的实现与应用(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 MES系统的实现与应用 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT/WORD原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT/WORD解决方案&…

将已克隆的Git仓库推送到内网服务器

一、需求背景 我们公司用gitea搭建了一个git服务器,其中支持win7的最高版本是v1.20.6。 我们公司的电脑在任何时候都不能连接外网,但是希望将一些开源的仓库移植到内网的服务器来,一是有相关代码的使用需求,二是建设一个内网可以…

DI-engine强化学习入门(三)DI-ZOO强化学习环境搭建与示例运行——Atari

Atari是一家知名的电子游戏公司,成立于1972年,是早期电子游戏产业的先驱之一。在强化学习领域,提到Atari通常指的是Atari 2600游戏的一系列环境,这些环境是用于开发和测试强化学习算法的标准平台。 Atari 2600 强化学习环境概述 …

手写tomcat(Ⅲ)——tomcat动态资源的获取

仿写tomcat的Servlet接口体系 之前写过一篇博客,Tomcat的Servlet-GenericServlet-HttpServlet体系的具体结构,以及Servlet的生命周期 Servlet讲解 想要模仿tomcat获取动态资源,就需要我们自己仿写一个Servlet接口体系 主要包括&#xff1a…

第15篇:JTAG UART IP应用<二>

Q:如何通过C库函数访问JTAG UART? A:创建Quartus硬件工程以及Platform Designer系统,这与我们之前创建的第一个Nios II工程--Hello_World的Quartus硬件工程一样,IP组件有Clock Source、Nios II Professor、On-Chip Me…

机器重启oracle数据库自动启动异常

业务连接报ora-01033: 检查服务器,发现有重启记录,oracle进程存在,数据库状态处于mount状态,检查日志,发现在数据库启动时没有正常open: 连入数据库:Select * from v$backup 发现数…