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

台州网站制作开发做网站哪家比较好

台州网站制作开发,做网站哪家比较好,区总工会网站建设流程,江西网站建设哪家专业首选项 在移动互联网蓬勃发展的今天#xff0c;移动应用给我们生活带来了极大的便利#xff0c;这些便利的本质在于数据的互联互通。因此在应用的开发中数据存储占据了非常重要的位置#xff0c;HarmonyOS应用开发也不例外。本章以HarmonyOS的首选项为例#xff0c;介绍了…首选项 在移动互联网蓬勃发展的今天移动应用给我们生活带来了极大的便利这些便利的本质在于数据的互联互通。因此在应用的开发中数据存储占据了非常重要的位置HarmonyOS应用开发也不例外。本章以HarmonyOS的首选项为例介绍了HarmonyOS的数据管理能力。 什么是首选项 首选项为应用提供Key-Value键值型的数据存储能力支持应用持久化轻量级数据并对其进行增删除改查等。该存储对象中的数据会被缓存在内存中因此它可以获得更快的存取速度。 首选项的特点如下 Key-Value形式存储数据 数据以键值对的形式存储其中Key是唯一的关键字而对应的Value是实际的数据值。 非关系型数据库 与关系型数据库不同首选项不遵循ACID特性Atomicity, Consistency, Isolation, Durability且数据之间没有关系。 进程中的唯一实例 在一个进程中每个文件只存在一个首选项实例。应用程序获取到该实例后可以从中读取数据或将数据存入其中。通过调用flush方法可以将实例中的数据回写到文件中。 与关系数据库的区别 特点/属性关系数据库首选项数据存储形式表格关系Key-Value非关系型ACID特性遵循ACID不遵循ACID数据关系数据表之间存在关联关系无数据关系独立的Key-Value对存储引擎使用数据库引擎如SQLite等存储在文件中使用场景复杂场景下的本地数据库管理对Key-Value结构的数据进行简单操作数据处理复杂查询、事务处理等简单的存取和持久化操作约束和限制连接池大小、同时写操作数等数据条目数量建议、Key类型限制 首选项常用接口 接口功能put将数据存储到首选项中get通过指定的Key获取首选项中的数据值has检查首选项中是否包含给定的Keydelete从首选项中删除指定Key的数据flush将首选项中的数据写回到文件中实现数据持久化 在使用前需要导入ohos.data.preferences模块实例名字命名为dataPreferences同时定义两个常量PREFERENCES_NAME和KEY_APP_FONT_SIZE。 // PreferencesUtil.ets import dataPreferences from ohos.data.preferences;...const PREFERENCES_NAME myPreferences; // 首选项名字const KEY_APP_FONT_SIZE appFontSize; // 首选项Key字段需要在entryAbility的onCreate方法获取首选项实例以便后续能进行保存、读取、删除等操作获取实例需要上下文context和文件名字PREFERENCES_NAME // entryAbility.ets onCreate(want, launchParam) {Logger.info(TAG, onCreate);globalThis.abilityWant want;// 创建首选项PreferencesUtil.createFontPreferences(this.context);...}// PreferencesUtil.ets createFontPreferences(context) {globalThis.getFontPreferences (() {// 获取首选项实例let preferences: PromisedataPreferences.Preferences dataPreferences.getPreferences(context, PREFERENCES_NAME);return preferences;});}保存数据 在entryAbility的onCreate方法调用PreferencesUtil.saveDefaultFontSize保存默认数据先用has方法判断当前key是否有存在如果没有就通过put方法把用户数据保存起来该方法通过key-value键值对方式保存常量KEY_APP_FONT_SIZE作为key用户数据fontSize作为value再通过flush方法把数据保存到文件。 // entryAbility.ets onCreate(want, launchParam) {Logger.info(TAG, onCreate);globalThis.abilityWant want;...// 设置字体默认大小PreferencesUtil.saveDefaultFontSize(Constants.SET_SIZE_STANDARD);} // PreferencesUtil.ets saveDefaultFontSize(fontSize: number) {globalThis.getFontPreferences().then((preferences) {// 判断保存的key是否存在preferences.has(KEY_APP_FONT_SIZE).then(async (isExist) {Logger.info(TAG, preferences has changeFontSize is isExist);if (!isExist) {// 保存数据await preferences.put(KEY_APP_FONT_SIZE, fontSize);preferences.flush();}}).catch((err) {Logger.error(TAG, Has the value failed with err: err);});}).catch((err) {Logger.error(TAG, Get the preferences failed, err: err);});}获取数据 在HomePage的onPageShow方法调用PreferencesUtil.getChangeFontSize方法获取用户数据调用get方法获取该方法通过key-value键值对方式读取常量KEY_APP_FONT_SIZE作为key默认数据fontSize作为value把的到的结果赋值给变量fontSize通过return方式把值返回去。 // HomePage.etsonPageShow() {PreferencesUtil.getChangeFontSize().then((value) {this.changeFontSize value;Logger.info(TAG, Get the value of changeFontSize: this.changeFontSize);});} // PreferencesUtil.ets async getChangeFontSize() {let fontSize: number 0;const preferences await globalThis.getFontPreferences();fontSize await preferences.get(KEY_APP_FONT_SIZE, fontSize);return fontSize;}是否包含指定的key 通过has方法判断首选项中是否包含指定的key保证指定的key不会被重复保存。 // PreferencesUtil.ets saveDefaultFontSize(fontSize: number) {globalThis.getFontPreferences().then((preferences) {// 判断保存的key是否存在preferences.has(KEY_APP_FONT_SIZE).then(async (isExist) {Logger.info(TAG, preferences has changeFontSize is isExist);}).catch((err) {Logger.error(TAG, Has the value failed with err: err);});}).catch((err) {Logger.error(TAG, Get the preferences failed, err: err);});}数据持久化 通过flush方法把应用数据保存到文件中使得应用数据保存期限变长 // PreferencesUtil.ets saveChangeFontSize(fontSize: number) {globalThis.getFontPreferences().then(async (preferences) {// 保存数据await preferences.put(KEY_APP_FONT_SIZE, fontSize);// 数据持久化preferences.flush();}).catch((err) {Logger.error(TAG, put the preferences failed, err: err);});}删除数据 删除首选项数据需要获取preferences实例用delete方法删除指定的key所对应的值常量KEY_APP_FONT_SIZE作为key通过Promise异步回调是否删除成功。 // PreferencesUtil.ets async deleteChangeFontSize() {const preferences: dataPreferences.Preferences await globalThis.getFontPreferences();// 删除数据let deleteValue preferences.delete(KEY_APP_FONT_SIZE);deleteValue.then(() {Logger.info(TAG, Succeeded in deleting the key appFontSize.);}).catch((err) {Logger.error(TAG, Failed to delete the key appFontSize. Cause: err);});}后台通知管理 通知的作用 通知旨在让用户以合适的方式及时获得有用的新消息帮助用户高效地处理任务。应用可以通过通知接口发送通知消息用户可以通过通知栏查看通知内容也可以点击通知来打开应用通知主要有以下使用场景 显示接收到的短消息、即时消息等。显示应用的推送消息如广告、版本更新等。显示当前正在进行的事件如下载等。 通知会在不同场景以不同形式提示用户例如通知在状态栏上显示为图标、在通知栏上会显示通知详细信息。重要的信息还可以使用横幅通知浮动在界面顶部显示。 创建通知 本节将介绍几种常见类型通知的创建在创建通知前需要先导入notificationManager模块该模块提供通知管理的能力包括发布、取消发布通知创建、获取、移除通知通道等能力。 import notification from ohos.notificationManager;基础类型通知 基础类型通知主要应用于发送短信息、提示信息、广告推送等支持普通文本类型、长文本类型、多行文本类型和图片类型可以通过contentType指定通知的内容类型。 发布普通文本类型通知需要设置contentType类型为ContentType.NOTIFICATION_CONTENT_BASIC_TEXT。 import notification from ohos.notificationManager;Entry Component struct NotificationDemo {publishNotification() {let notificationRequest: notification.NotificationRequest { // 描述通知的请求id: 1, // 通知IDslotType: notification.SlotType.SERVICE_INFORMATION,content: { // 通知内容contentType: notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // 普通文本类型通知normal: { // 基本类型通知内容title: 通知内容标题,text: 通知内容详情,additionalText: 通知附加内容, // 通知附加内容是对通知内容的补充。}}}notification.publish(notificationRequest).then(() { // 发布通知console.info(publish success);}).catch((err) {console.error(publish failed, dcode:${err.code}, message:${err.message});});}build() {Column() {Button(发送通知).onClick(() {this.publishNotification()})}.width(100%)} }参数名作用notificationRequest描述通知的请求对象包含通知的各种信息。id通知的唯一标识符用于区分不同的通知。slotType通知的槽类型指定通知在通知栏的位置。content包含通知内容的对象指定通知的类型和具体内容。contentType指定通知的内容类型例如普通文本、长文本、图片等。normal包含普通文本类型通知的具体内容信息。title普通文本类型通知的标题。text普通文本类型通知的详细内容。additionalText普通文本类型通知的附加内容对通知内容的补充说明。publishnotification.publish方法用于发布通知。thenPromise的成功回调用于在通知发布成功后执行的操作。catchPromise的失败回调用于在通知发布失败时处理错误情况。onClick按钮的点击事件处理函数用于在按钮点击时触发通知发布操作。 发布图片类型通知 发布普通文本类型通知需要设置contentType类型为ContentType.NOTIFICATION_CONTENT_PICTURE。 import notification from ohos.notificationManager; import image from ohos.multimedia.image;Entry Component struct NotificationTest1 {async publishPictureNotification() {// 将资源图片转化为PixelMap对象let resourceManager getContext(this).resourceManager;let imageArray await resourceManager.getMediaContent($r(app.media.bigPicture).id);let imageResource image.createImageSource(imageArray.buffer);let pixelMap await imageResource.createPixelMap();let notificationRequest: notification.NotificationRequest { // 描述通知的请求id: 1,content: {contentType: notification.ContentType.NOTIFICATION_CONTENT_PICTURE,picture: {title: 好物热销中, // 通知内容标题text: 展开查看详情, // 通知内容expandedTitle: 今日热门推荐, // 通知展开时的内容标题briefText: 这里一定有您喜欢的, // 通知概要内容是对通知内容的总结picture: pixelMap // 通知的图片内容}}}notification.publish(notificationRequest).then(() { // 发布通知console.info(publish success);}).catch((err) {console.error(publish failed, dcode:${err.code}, message:${err.message});});}build() {Column() {Button(发送大图通知).onClick(() {this.publishPictureNotification()})}.width(100%)} }参数名作用notificationRequest描述通知的请求对象包含通知的各种信息。id通知的唯一标识符用于区分不同的通知。content包含通知内容的对象指定通知的类型和具体内容。contentType指定通知的内容类型例如图片、普通文本、长文本等。picture包含图片类型通知的具体内容信息。title图片类型通知的标题。text图片类型通知的详细内容。expandedTitle图片类型通知展开时的内容标题。briefText图片类型通知的概要内容对通知内容的总结。picture图片类型通知的图片内容。pixelMap通知的图片内容通过像素图 (pixelMap) 表示。publishnotification.publish 方法用于发布通知。thenPromise 的成功回调用于在通知发布成功后执行的操作。catchPromise 的失败回调用于在通知发布失败时处理错误情况。onClick按钮的点击事件处理函数用于在按钮点击时触发通知发布操作。 进度类型通知 进度条通知也是常见的通知类型主要应用于文件下载、事务处理进度显示。目前系统模板仅支持进度条模板。 在发布进度类型通知前需要查询系统是否支持进度条模板 notification.isSupportTemplate(downloadTemplate).then((data) {console.info([ANS] isSupportTemplate success);let isSupportTpl: boolean data; // isSupportTpl的值为true表示支持支持downloadTemplate模板类通知false表示不支持// ... }).catch((err) {console.error([ANS] isSupportTemplate failed, error[${err}]); });构造进度条模板name字段当前需要固定配置为downloadTemplate。 let template {name: downloadTemplate,data: {progressValue: 60, // 当前进度值progressMaxValue: 100 // 最大进度值} }let notificationRequest {id: 1,content: {contentType: notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,normal: {title: 文件下载music.mp4,text: senTemplate,additionalText: 60%}},template: template } // 发布通知 notification.publish(notificationRequest).then(() {console.info(publish success); }).catch(error {console.error([ANS] publish failed, code is ${error.code}, message is ${error.message}); })更新通知 在发出通知后使用您之前使用的相同通知ID再次调用notification.publish来实现通知的更新。如果之前的通知是关闭的将会创建新通知。 移除通知 // 通过通知ID取消已发布的通知 notification.cancel(notificationId) // 取消所有已发布的通知 notification.cancelAll()通知通道 通过通知通道您可让通知有不同的表现形式比如社交类型的通知是横幅显示的并且有提示音而一般的通知则不会横幅显示您可以使用slotType来实现。 通知通道类型显示通知图标显示横幅提示音适用场景SlotType.SOCIAL_COMMUNICATION是是是社交应用如消息、社交媒体等需要用户及时关注和响应的场景。SlotType.SERVICE_INFORMATION是否是服务性应用如后台服务状态、系统信息等不需要过于显眼的提示。SlotType.CONTENT_INFORMATION是否否内容相关的应用如新闻、文章更新等用户更关心通知的内容而非及时响应。SlotType.OTHER_TYPES否否否不需要在状态栏中显示图标通知内容不需要引起用户关注的场景。 后台代理提醒 本节讲述了在HarmonyOS应用中使用后台代理提醒reminderAgentManager来添加、发布、删除和修改提醒的基本操作。 后台代理提醒主要有以下几种类型 倒计时日历闹钟 添加使用权限 module: {...requestPermissions: [{name: ohos.permission.PUBLISH_AGENT_REMINDER}] }在应用的 module 配置中添加了后台代理提醒的使用权限。 导入 reminderAgent 模块 import reminderAgent from ohos.reminderAgentManager;通过 ohos.reminderAgentManager 模块导入后台代理提醒模块并将其命名为 reminderAgent。 新增提醒 export class ReminderService {public addReminder(alarmItem: ReminderItem, callback?: (reminderId: number) void) {let reminder this.initReminder(alarmItem);reminderAgent.publishReminder(reminder, (err, reminderId) {if (callback ! null) {callback(reminderId);}});} }使用 reminderAgent.publishReminder 方法发布新的提醒。提醒的具体信息由 ReminderRequestAlarm 类型定义。 删除提醒 export class ReminderService {public deleteReminder(reminderId: number) {reminderAgent.cancelReminder(reminderId);} }使用 reminderAgent.cancelReminder 方法删除指定 reminderId 的提醒。 修改提醒 public async setAlarmRemind(alarmItem: AlarmItem) {let index await this.findAlarmWithId(alarmItem.id);if (index ! Constants.DEFAULT_NUMBER_NEGATIVE) {this.reminderService.deleteReminder(alarmItem.id);} else {// 处理新增提醒的逻辑}this.reminderService.addReminder(alarmItem, (newId) {alarmItem.id newId;// 处理新提醒的逻辑}) }在修改提醒时首先调用 deleteReminder 方法删除旧提醒然后调用 addReminder 方法添加新提醒。
http://www.hkea.cn/news/14337302/

相关文章:

  • 除了网页外 网站还需要上海自贸区注册公司优惠政策
  • 做薪酬调查的网站上海市建设执业注册中心网站
  • 列出网站开发建设的步骤株洲定制网站建设
  • 如何k掉别人的网站自助小站
  • 新农村建设管理网站如何建设网站pdf下载
  • 丰城网站建设公司福州仓前网站建设
  • 即墨医院网站制作公司部署php网站
  • 下沙建设局网站深圳网站关键词排名优化
  • 将电脑做的网站放到外网环境设计专业作品集
  • wordpress网站刷新做网站前台和后台是什么
  • 教育公司 网站建设电影网站要怎样做才有出路
  • it 网站模板建设银行官方网站登录
  • 网站内容创造辽宁网站建设哪里好找
  • 自己做公司的网站上海最大企业前十名
  • 最专业的手机网站建设凉山网站建设
  • 百度站长平台注册舞曲网站建设
  • 网站平台建设心得如何做网站资讯
  • 智库门户网站建设搜狗推广登录
  • 关于建设工程资质网站dw网站大学生代做
  • 海口仿站定制模板建站平面设计在线课程
  • 沈阳网站建设包括网站开发和系统开发的区别
  • 设计一个网站策划书织梦网站安装dir
  • 网站策划网怎么建设手机网站首页
  • 如何把自己写的html变成网站wordpress缩略图生成
  • 服装展示网站源码什么做书籍的网站
  • 深圳工信部网站备案公司建一个网站多少费用
  • 南宁小程序开发网站建设公司制作网页类型一般分为什么
  • 自建服务器网站备案学校官网网页怎么制作html
  • 迁安建设局官方网站工商银行手机银行app下载
  • 常州做网站麦策手机怎么创建网址链接