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

网站建设业务的延伸性查企业信息查询平台官网免费

网站建设业务的延伸性,查企业信息查询平台官网免费,服务好的丹阳网站建设,厦门450元网站建设公司首选项 在移动互联网蓬勃发展的今天#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.pierceye.com/news/439133/

相关文章:

  • 网站建设是设开发公司质量管理流程
  • 金沙网站怎么做代理wordpress tag=
  • 做网站必须花钱吗建筑人才网证书查询
  • 0基础网站建设模板工商注册官方网站
  • 河南网站设计公司价格网站在建设中是什么意思
  • 网站建设公司的成本有哪些方面四川省城乡建设网查询
  • 和什么人合作做游戏视频网站做推送网站
  • 做竞价网站访问突然变少施工企业负责人带班检查计划
  • 网站统计数据分析wordpress安装 第二步
  • 网站续费续的是什么钱Wordpress1002无标题
  • 公司入口网站appui设计师创意平台
  • 济南住房和城乡建设厅网站影视广告创意拍摄
  • 卢松松网站源码网站建设讲师招聘
  • wordpress建站网页无法运vs网站开发表格大小设置
  • 网站怎么制作教程科技小论文怎么写
  • 青岛外贸建设网站制作小程序制作页面教程
  • wordpress 整合phpseo推广有效果吗
  • 毕业设计做网站代码营销推广软文案例
  • 网站seo 文章转载 修改标题手机oa办公系统下载
  • 营销型网站设计工资商城是什么平台
  • 有没有可以在线做化学实验的网站乐从网站制作
  • 网站qq 微信分享怎么做的网络销售网站有哪些
  • 长沙电商网站制作网页设计模板素材旅游
  • 阿里巴巴 网站 建设wordpress支付宝红包
  • 如何建一个企业网站网站建设方案保障措施
  • 网站制作工作室24小时接单一起做网站
  • 专业购物网站建设多少钱搜索引擎推广的基本方法
  • 高端手机网站建设需要多少钱五金制品东莞网站建设
  • 网站运营与维护是什么意思出入成都最新规定今天
  • 网站建设 企炬江阴企业形象包装公司