相关问题
#鸿蒙通关秘籍#如何通过message事件刷新鸿蒙OS卡片中的内容
511浏览 • 1回复 待解决
#鸿蒙通关秘籍#开发鸿蒙动态卡片时如何利用router或call事件保持卡片内容实时更新
301浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现鸿蒙卡片定时和定点刷新?
471浏览 • 1回复 待解决
#鸿蒙通关秘籍#怎样设置鸿蒙卡片的下次刷新时间?
580浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何进行鸿蒙卡片的状态持久化管理?
526浏览 • 1回复 待解决
#鸿蒙通关秘籍#动态卡片与静态卡片事件能力在鸿蒙开发中的应用
311浏览 • 1回复 待解决
#鸿蒙通关秘籍#怎样避免鸿蒙卡片定时刷新时的误差问题?
469浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何减少鸿蒙状态管理中组件刷新次数?
467浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中为不同状态设置不同的转场动画?
477浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在ArkTS卡片中处理用户的动态操作?
270浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用component类型的XComponent动态加载内容?
394浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何处理Refresh组件的刷新状态变化?
543浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何刷新鸿蒙卡片中的本地图片和在线图片?
470浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙中实现动态网格布局刷新
573浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何根据滑动动态地调整模糊效果?
444浏览 • 1回复 待解决
#鸿蒙通关秘籍#在ArkTS卡片开发中如何定义和使用卡片的刷新机制?
518浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何自定义鸿蒙全局状态弹窗的布局和内容?
351浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在鸿蒙NEXT应用中动态更新显示网络状态?
716浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何根据不同使用目的配置HarmonyOS密钥库中的密钥参数?
362浏览 • 0回复 待解决
如何根据依据组件的内部状态的不同,快速设置不同样式,都有哪些状态?
704浏览 • 1回复 待解决
#鸿蒙通关秘籍#TextInput组件如何根据输入内容改变组件本身的长度?
367浏览 • 1回复 待解决
#鸿蒙通关秘籍#使用stateStyles时如何依据组件的内部状态的不同快速设置不同样式?
317浏览 • 1回复 待解决
#鸿蒙通关秘籍#提个问题,服务卡片开发中,动态卡片和静态卡片有什么区别?
409浏览 • 1回复 待解决
#鸿蒙通关秘籍#router事件在动态卡片中的作用是什么?
534浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙卡片如何持久化存储?
514浏览 • 1回复 待解决
可通过本地数据库存储卡片状态,在
onUpdateForm
回调中根据状态选择要刷新的内容:javascript import { preferences } from '@kit.ArkData'; import { formBindingData, FormExtensionAbility, formProvider } from '@kit.FormKit';
export default class UpdateByStatusFormAbility extends FormExtensionAbility { onAddForm(want) { let formId = JSON.stringify(want.parameters[formInfo.FormParam.IDENTITY_KEY]); let promise = preferences.getPreferences(this.context, 'myStore'); promise.then((storeDB) => { storeDB.put('A' + formId, 'false'); storeDB.put('B' + formId, 'false'); storeDB.flush(); });
}
onUpdateForm(formId) { let promise = preferences.getPreferences(this.context, 'myStore'); promise.then(async (storeDB) => { let stateA = await storeDB.get('A' + formId, 'false'); let stateB = await storeDB.get('B' + formId, 'false'); if (stateA === 'true') { let param = { 'textA': 'AAA' }; formProvider.updateForm(formId, formBindingData.createFormBindingData(param)); } if (stateB === 'true') { let param = { 'textB': 'BBB' }; formProvider.updateForm(formId, formBindingData.createFormBindingData(param)); } }); }
onFormEvent(formId, message) { let promise = preferences.getPreferences(this.context, 'myStore'); promise.then(async (storeDB) => { let msg = JSON.parse(message); if (msg.selectA !== undefined) { storeDB.put('A' + formId, msg.selectA); } if (msg.selectB !== undefined) { storeDB.put('B' + formId, msg.selectB); } storeDB.flush(); }); } }
使用
preferences
进行信息的持久化,并在相应的状态变化后更新卡片内容。