卡片内容修改分为三种:
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 cardZSONObject 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 cardtry { 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,可以在卡片创建记录下来。
本文主要根据官方文档学习体验整理
附件: