HarmonyOS鸿蒙Next应用开发-修改卡片内容
HarmonyOS鸿蒙Next应用开发-修改卡片内容 卡片内容修改分为三种:
-
定时自动修改
修改配置文件,可以定时刷新其内容"scheduledUpdateTime": "10:30"
到点后会自动调用
updateFormData(long formId, Object... vars)
的内容,自动刷新卡片,我们只需要修改其内容,让卡片刷新成我们想要的页面。 -
卡片请求修改
在WidgetImpl下的onTriggerFormEvent(long formId, String message)
方法,会接收卡片传回来的数据,我们可以根据传回来的数据刷新页面。
Json文件发生消息"actions": { "getNext": { "action": "message", "params": { "mAction": "next" } } }
后台获取处理
[@Override](/user/Override) public void onTriggerFormEvent(long formId, String message) { ZSONObject zsonObject = ZSONObject.stringToZSON(message); // Do something here after receive the message from js card ZSONObject result = new ZSONObject(); switch (zsonObject.getString("mAction")) { case "next": id=(id+1)%4; result.put("name", album.getMusicName(id)); result.put("introduce", album.getIntroduce(id) ); result.put("imageUri", album.getImageUri(id)); HiLog.info(TAG, "播放音乐:"+album.getMusicName(id)); initPlay("next"); break; default: break; } // Update js card try { if (mContext instanceof Ability) { ((Ability) mContext).updateForm(formId, new FormBindingData(result)); } } catch (FormException e) { HiLog.error(TAG, e.getMessage()); } }
-
后台主动修改
会台处理和卡片请求更新类似,都是要使用updateForm(formId, new FormBindingData(result))
方法,但需要知道卡片的formId
,可以在卡片创建记录下来。
本文主要根据官方文档学习体验整理
更多关于HarmonyOS鸿蒙Next应用开发-修改卡片内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html
- 定时自动修改
修改配置文件,可以定时刷新其内容
“scheduledUpdateTime”: “10:30”
到点后会自动调用updateFormData(long formId, Object... vars)
的内容,自动刷新卡片,我们只需要修改其内容,让卡片刷新成我们想要的页面。
updateFormData
没有自动调用,而是ability
的onUpdateForm
执行了,这个是什么问题呢?
更多关于HarmonyOS鸿蒙Next应用开发-修改卡片内容的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
达成你的目标了没,达成你的效果要求就行了,可能语言描述理解的不一样。
到点后会自动调用updateFormData(long formId, Object... vars)
支持楼主继续划重点,楼主加油~
在HarmonyOS鸿蒙Next中,修改卡片内容通常涉及以下几个步骤:
-
定义卡片布局:在
resources/base/layout
目录下创建XML布局文件,定义卡片的UI结构。 -
创建卡片提供者:在
src/main/java
目录下创建FormAbility
类,继承FormProviderAbility
,并重写onCreateForm
和onUpdateForm
方法,用于初始化和更新卡片内容。 -
绑定数据:在
onUpdateForm
方法中,通过FormBindingData
将数据绑定到卡片布局。 -
更新卡片:调用
updateForm
方法,传入卡片ID和新的FormBindingData
,以更新卡片内容。 -
测试与发布:在DevEco Studio中运行应用,测试卡片更新功能,确认无误后发布应用。
通过这些步骤,您可以实现HarmonyOS鸿蒙Next应用中的卡片内容修改。