回复
HarmonyOS应用开发-修改卡片内容
鸿蒙时代
发布于 2021-11-1 11:20
浏览
0收藏
卡片内容修改分为三种:
1.定时自动修改
修改配置文件,可以定时刷新其内容
“scheduledUpdateTime”: “10:30”
到点后会自动调用updateFormData(long formId, Object… vars)的内容,自动刷新卡片,我们只需要修改其内容,让卡片刷新成我们想要的页面。
2.卡片请求修改
在WidgetImpl下的onTriggerFormEvent(long formId, String message)方法,会接收卡片传回来的数据,我们可以根据传回来的数据刷新页面。
Json文件发生消息
“actions”: {
“getNext”: {
"action": "message",
"params": {
"mAction": "next"
}
}
}
后台获取处理
@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());
}
}
3.后台主动修改
会台处理和卡片请求更新类似,都是要使用updateForm(formId, new FormBindingData(result))方法,但需要知道卡片的formId,可以在卡片创建记录下来。
本文主要根据官方文档学习体验整理
HarmonyOS应用开发-修改卡片内容.docx 14.78K 9次下载
已于2021-11-1 13:59:12修改
赞
收藏
回复
相关推荐