Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
b74f9903
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
b74f9903
编写于
6月 17, 2022
作者:
O
openharmony_ci
提交者:
Gitee
6月 17, 2022
浏览文件
操作
浏览文件
下载
差异文件
!5473 补充和卡片交互数据的开发步骤
Merge pull request !5473 from yangzk/master
上级
962f38fd
78b52c05
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
43 addition
and
1 deletion
+43
-1
zh-cn/application-dev/ability/fa-formability.md
zh-cn/application-dev/ability/fa-formability.md
+22
-1
zh-cn/application-dev/ability/stage-formextension.md
zh-cn/application-dev/ability/stage-formextension.md
+21
-0
未找到文件。
zh-cn/application-dev/ability/fa-formability.md
浏览文件 @
b74f9903
...
...
@@ -234,14 +234,35 @@ FormProvider类具体的API详见[接口文档](../reference/apis/js-apis-formpr
具体的持久化方法可以参考
[
轻量级数据存储开发指导
](
../database/database-preference-guidelines.md
)
。
需要注意的是,卡片使用方在请求卡片时传递给提供方应用的Want数据中存在临时标记字段,表示此次请求的卡片是否为临时卡片:
-
常态卡片:卡片使用方会持久化的卡片;
-
临时卡片:卡片使用方不会持久化的卡片;
由于临时卡片的数据具有非持久化的特殊性,某些场景比如卡片服务框架死亡重启,此时临时卡片数据在卡片管理服务中已经删除,且对应的卡片ID不会通知到提供方,所以卡片提供方需要自己负责清理长时间未删除的临时卡片数据。同时对应的卡片使用方可能会将之前请求的临时卡片转换为常态卡片。如果转换成功,卡片提供方也需要对对应的临时卡片ID进行处理,把卡片提供方记录的临时卡片数据转换为常态卡片数据,防止提供方在清理长时间未删除的临时卡片时,把已经转换为常态卡片的临时卡片信息删除,导致卡片信息丢失。
### 卡片数据交互
当卡片应用需要更新数据时(如触发了定时更新或定点更新),卡片应用获取最新数据,并调用updateForm接口更新卡片。示例如下:
```
javascript
onUpdate
(
formId
)
{
// 若卡片支持定时更新/定点更新/卡片使用方主动请求更新功能,则提供方需要重写该方法以支持数据更新
console
.
log
(
'
FormAbility onUpdate
'
);
let
obj
=
{
"
title
"
:
"
titleOnUpdate
"
,
"
detail
"
:
"
detailOnUpdate
"
};
let
formData
=
formBindingData
.
createFormBindingData
(
obj
);
// 调用updateForm接口去更新对应的卡片,仅更新入参中携带的数据信息,其他信息保持不变
formProvider
.
updateForm
(
formId
,
formData
).
catch
((
error
)
=>
{
console
.
log
(
'
FormAbility updateForm, error:
'
+
JSON
.
stringify
(
error
));
});
}
```
### 开发卡片页面
开发者可以使用hml+css+json开发JS卡片页面:
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
...
...
zh-cn/application-dev/ability/stage-formextension.md
浏览文件 @
b74f9903
...
...
@@ -252,7 +252,28 @@ FormProvider类具体的API介绍详见[接口文档](../reference/apis/js-apis-
由于临时卡片的数据具有非持久化的特殊性,某些场景比如卡片服务框架死亡重启,此时临时卡片数据在卡片管理服务中已经删除,且对应的卡片ID不会通知到提供方,所以卡片提供方需要自己负责清理长时间未删除的临时卡片数据。同时对应的卡片使用方可能会将之前请求的临时卡片转换为常态卡片。如果转换成功,卡片提供方也需要对对应的临时卡片ID进行处理,把卡片提供方记录的临时卡片数据转换为常态卡片数据,防止提供方在清理长时间未删除的临时卡片时,把已经转换为常态卡片的临时卡片信息删除,导致卡片信息丢失。
### 卡片数据交互
当卡片应用需要更新数据时(如触发了定时更新或定点更新),卡片应用获取最新数据,并调用updateForm接口更新卡片。示例如下:
```
javascript
onUpdate(formId) {
// 若卡片支持定时更新/定点更新/卡片使用方主动请求更新功能,则提供方需要重写该方法以支持数据更新
console.log('FormAbility onUpdate');
let obj = {
"title": "titleOnUpdate",
"detail": "detailOnUpdate"
};
let formData = formBindingData.createFormBindingData(obj);
// 调用updateForm接口去更新对应的卡片,仅更新入参中携带的数据信息,其他信息保持不变
formProvider.updateForm(formId, formData).catch((error) => {
console.log('FormAbility updateForm, error:' + JSON.stringify(error));
});
}
```
### 开发卡片页面
开发者可以使用hml+css+json开发JS卡片页面:
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录