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

网站建设的软件微信公众号推广

网站建设的软件,微信公众号推广,做博彩网站的虚拟空间,自己如何建设网站注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下

如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识

专栏地址: https://blog.csdn.net/qq_56760790/category_12794123.html

鸿蒙next学习交流q群:767465523

目录

 1. 用户通知服务基本介绍

2. 能力范围

3. 业务流程

4. 用户通知服务-工具类封装小案例

4.1 基本介绍

4.2 操作环境

4.3 代码实现

4.3.1 文本通知工具类

4.3.2 文件通知工具类

4.3.3 页面的编写

5. 学习地址


 1. 用户通知服务基本介绍

Notification Kit(用户通知服务)为开发者提供本地通知发布通道,开发者可借助Notification Kit将应用产生的通知直接在客户端本地推送给用户,本地通知根据通知类型及发布场景会产生对应的铃声、震动、横幅、锁屏、息屏、通知栏提醒和显示。

2. 能力范围

Notification Kit支持的能力主要包括:

  • 发布文本、进度条等类型通知。
  • 携带或更新应用通知数字角标。
  • 取消曾经发布的某条或全部通知。
  • 查询已发布的通知列表。
  • 查询应用自身通知开关状态。
  • 应用通知用户的能力默认关闭,开发者可拉起授权框,请求用户授权发布通知。

3. 业务流程

使用Notification Kit的主要业务流程如下:

1.请求通知授权。

2.应用发布通知到通知服务。

3.将通知展示到通知中心。

Notification Kit中常用的通知样式如下:

注意:

  • 单个应用已发布的通知在通知中心等系统入口的留存数量有限(当前规格最多24条)。
  • 通知的长度不能超过200KB(跨进程序列化大小限制)。
  • 系统所有应用发布新通知的频次累计不能超过每秒10条,更新通知的频次累计不能超过每秒20条。

官方文档地址:文档中心

4. 用户通知服务-工具类封装小案例

4.1 基本介绍

通过案例我们能学习到:用户通知服务还有部分文件服务基础能力工具类的封装,教大家如何进行工具类封装。

主体功能:用户点击下载文件按钮,触发通知,也可以取消通知

4.2 操作环境

记得在module.json文件中配置网络权限

    "requestPermissions":[{"name" : "ohos.permission.INTERNET","reason": "$string:internet","usedScene": {"abilities": ["FormAbility"],"when":"inuse"}}],

4.3 代码实现

界面如下:

4.3.1 文本通知工具类

NotificationUtil.ets

import { notificationManager } from '@kit.NotificationKit';
import { common } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';export class NotificationUtil {/*** 查询通知是否授权*/static async isNotificationEnabled(): Promise<boolean> {return await notificationManager.isNotificationEnabled(); //查询通知是否授权。}/*** 请求通知授权,第一次调用会弹窗让用户选择。* @returns*/static async authorizeNotification(): Promise<boolean> {let isEnabled = await NotificationUtil.isNotificationEnabled(); //查询通知是否授权if (!isEnabled) { //未授权,拉起授权try {let context = getContext() as common.UIAbilityContext;await notificationManager.requestEnableNotification(context);return true;} catch (e) {return false;}} else {return true;}}/*** 发起普通文本通知*/static publishText(notificationOptions: NotificationOptions): Promise<boolean> {return new Promise<boolean>((resolve, reject) => {let notificationRequest: notificationManager.NotificationRequest = {// 通知的唯一idid: notificationOptions.id,content: {notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // 普通文本类型通知normal: {// 通知的标题title: notificationOptions.title,// 通知的内容text: notificationOptions.text,// 附加消息additionalText: notificationOptions.additionalText,}}};notificationManager.publish(notificationRequest, (err: BusinessError) => {if (err) {console.log(`Failed to publish notification. Code is ${err.code}, message is ${err.message}`)reject(err)}console.log('Succeeded in publishing notification.')resolve(true)});})}/*** 取消通知*/static cancel(id: number): Promise<boolean> {return new Promise<boolean>((resolve, reject) => {notificationManager.cancel(id, (err: BusinessError) => {if (err) {console.log(`Failed to cancel notification. Code is ${err.code}, message is ${err.message}`)reject(err)}console.log('Succeeded in cancel notification.')resolve(true)});})}/*** 取消所有通知*/static cancelAll(): Promise<boolean> {return new Promise<boolean>((resolve, reject) => {notificationManager.cancelAll((err: BusinessError) => {if (err) {console.log(`Failed to cancel notification. Code is ${err.code}, message is ${err.message}`)reject(err)}console.log('Succeeded in cancel notification.')resolve(true)});})}
}interface NotificationOptions {id: numbertitle: stringtext: stringadditionalText: string}

4.3.2 文件通知工具类

FileUtil.ets

import { common } from '@kit.AbilityKit';
import fs from '@ohos.file.fs';
import request from '@ohos.request';
import { BusinessError } from '@ohos.base';let context = getContext(this) as common.UIAbilityContext;export class FileUtil {/*** 判断文件是否存在*/static isExist(fileName: string, fileSuffix: string) {// 判断文件是否存在,存在就删除let path = context.filesDir + '/' + fileName + '.' + fileSuffix;if (fs.accessSync(path)) {fs.unlinkSync(path);}}/*** 下载文件*/static downloadFile(fileName: string, fileSuffix: string, fileUrl: string): Promise<boolean> {return new Promise<boolean>((resolve, reject) => {// 判断文件是否已存在FileUtil.isExist(fileName, fileSuffix)request.downloadFile(context, {url: fileUrl,filePath: context.filesDir + '/' + fileName + '.' + fileSuffix}).then((downloadTask: request.DownloadTask) => {downloadTask.on('complete', () => {resolve(true)})}).catch((err: BusinessError) => {console.error(`Invoke downloadTask failed, code is ${err.code}, message is ${err.message}`);reject(err)});})}
}

4.3.3 页面的编写

Index.ets

import { NotificationUtil } from '../utils/NotificationUtil'
import { promptAction } from '@kit.ArkUI'
import { BusinessError } from '@kit.BasicServicesKit'
import { FileUtil } from '../utils/FileUtil'@Entry@Componentstruct Index {build() {Column({ space: 20 }) {Button('发起通知').onClick(async () => {// 发起通知授权let isSuccess = await NotificationUtil.authorizeNotification()if (isSuccess) {// 发起通知NotificationUtil.publishText({id: 1,title: '百得知识库',text: '百得知识库提醒你该学习了',additionalText: '百得'}).then(() => {promptAction.showToast({ message: '发起通知成功' })}).catch((error: BusinessError) => {promptAction.showToast({ message: '发起通知失败' + error.message })})} else {promptAction.showToast({ message: '通知授权失败' })}}).margin(100)Button('取消通知').onClick(async () => {let flag = await NotificationUtil.cancel(1)if (flag) {promptAction.showToast({ message: '取消通知成功' })return}promptAction.showToast({ message: '取消通知失败' })})Button('取消所有通知').onClick(async () => {let flag = await NotificationUtil.cancelAll()if (flag) {promptAction.showToast({ message: '取消所有通知成功' })return}promptAction.showToast({ message: '取消所有通知失败' })}).margin(100)Button('下载文件完成通知').onClick(() => {FileUtil.downloadFile('hello', 'txt', 'http://121.41.123.231:8888/f/e01ace4294264594b632/?dl=1').then(async (data) => {promptAction.showToast({ message: '文件下载成功' })// 发起通知授权let isSuccess = await NotificationUtil.authorizeNotification()if (isSuccess) {// 发起通知NotificationUtil.publishText({id: 2,title: '百得知识库',text: '文件下载成功',additionalText: '百得'}).then((data) => {if (data) {promptAction.showToast({ message: '发起通知成功' })return}promptAction.showToast({ message: '发起通知失败' })}).catch((error: BusinessError) => {promptAction.showToast({ message: '发起通知失败' + error.message })})} else {promptAction.showToast({ message: '通知授权失败' })}}).catch((error: BusinessError) => {promptAction.showToast({ message: '文件下载失败' + error.message })})})}.height('100%').width('100%').justifyContent(FlexAlign.Center)}}

5. 学习地址

全网首发鸿蒙NEXT星河版零基础入门到实战,2024年最新版,企业级开发!视频陆续更新中!_哔哩哔哩_bilibili

http://www.yidumall.com/news/102110.html

相关文章:

  • 国外哪些网站可以注册域名360优化大师历史版本
  • 网站建设的目标是什么中国今天刚刚发生的新闻
  • 网站模版怎么样seo交流论坛seo顾问
  • 做外贸的网站市场营销互联网营销
  • 广州营销型网站建设公司哪家名气大软文发稿网站
  • 网站开发建设费用包括那些杭州网站推广与优化
  • 技术支持 嘉兴网站建设百度统计网站
  • 上海网页设计报价徐州网页关键词优化
  • 肇庆做网站公司百度top排行榜
  • 网站建设公司的转型培训机构优化
  • 做网站怎么回本线上宣传渠道和宣传方式
  • 创建网站是怎么赚钱seo短视频保密路线
  • 中考复读学校网站怎么做化工网站关键词优化
  • 品牌的佛山网站建设怎么在百度发布自己的文章
  • 网站建设如果没有源代码淘宝app官方下载
  • 企业网站推广是不是必要的在线超级外链工具
  • 手把手教你做网站 3apple日本网站
  • 高端网站建设费用预算站长之家 seo查询
  • 建设单位网站经费请示怎么搭建属于自己的网站
  • 北京房产网二手房出售排名优化系统
  • 青岛做网站建设多少钱在线种子资源库
  • 公司网站功能模块全媒体广告加盟
  • 做设备外贸b2b网站什么是网络营销平台
  • 网站开发一月工资多少泉州seo托管
  • 做电影网站模板教学关键词排名优化教程
  • 怎么建立一个网站八字测试八爪鱼磁力搜索引擎
  • 大连企业网站建站百度指数查询工具
  • 漯河网站制作网络卖货平台有哪些
  • 1.电子商务网站建设的核心是( )谷歌搜索引擎入口2022
  • 公司注册网站官网seo网站排名软件