1# formfwk子系统ChangeLog
2
3## cl.formfwk.1 @ohos.app.form.formHost.d.ts部分接口移出,接口权限变动
4
51. @ohos.app.form.formHost.d.ts中涉及监听和获取卡片动态信息的接口移至@ohos.app.form.formObserver.d.ts;
62. 涉及接口需申请权限由ohos.permission.REQUIRE_FORM修改为ohos.permission.OBSERVE_FORM_RUNNING7
8**变更影响**
9
10对于已发布的ArkTS接口,可能影响三方应用的兼容性。
11
12**关键的接口/组件变更**
13
14|     接口      | 修改前所属d.ts | 修改后所属d.ts | 修改前所需权限 | 修改后所需权限 |
15|   --------    |   --------    |   --------    | --------      | --------  |
16| on('formAdd') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM|ohos.permission.OBSERVE_FORM_RUNNING|
17| off('formAdd')| @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM|ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
18| on('formRemove') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
19| off('formRemove') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
20| on('notifyVisible') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
21| off('notifyVisible') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
22| on('notifyInvisible') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
23| off('notifyInvisible') | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
24| getRunningFormInfos | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
25| getRunningFormInfosByFilter | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
26| getRunningFormInfoById | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING | @ohos.app.form.formHost.d.ts | @ohos.app.form.formObserver.d.ts | ohos.permission.REQUIRE_FORM | ohos.permission.OBSERVE_FORM_RUNNING |
27
28
29**适配指导**
30
31已使用相关接口开发的应用工程,需要对接口进行适配。从OpenHarmony 4.0.9.5版本起,相关接口使用应导入@ohos.app.form.formObserver.d.ts,并申请ohos.permission.OBSERVE_FORM_RUNNING权限。
32
33**示例:**
34```ts
35import formObserver from '@ohos.app.form.formObserver';
36import formInfo from '@ohos.app.form.formInfo';
37import Base from '@ohos.base';
38
39try {
40  formObserver.getRunningFormInfos((error: Base.BusinessError, data: formInfo.RunningFormInfo[]) => {
41    if (error) {
42      console.error(`error, code: ${error.code}, message: ${error.message}`);
43    } else {
44      console.log('formHost getRunningFormInfos, data: ${JSON.stringify(data)}');
45    }
46  }, 'com.example.ohos.formjsdemo');
47} catch(error) {
48  console.error(`catch error, code: ${error.code}, message: ${error.message}`);
49}
50```
51
52## cl.formfwk.2 事件订阅,取消订阅相关接口(on/off)参数顺序调整
53
54事件订阅,取消订阅相关接口(on/off)中的callback调整为接口最后一个参数。
55
56**变更影响**
57
58对于已发布的ArkTS接口,可能影响三方应用的兼容性。
59
60**关键的接口/组件变更**
61
62修改前的接口原型:
63
64```ts
65function on(type: 'formAdd', observerCallback: Callback<formInfo.RunningFormInfo>, bundleName?: string): void;
66function off(type: 'formAdd', observerCallback?: Callback<formInfo.RunningFormInfo>, bundleName?: string): void;
67
68function on(type: 'formRemove', observerCallback: Callback<formInfo.RunningFormInfo>, bundleName?: string): void;
69function off(type: 'formRemove', observerCallback?: Callback<formInfo.RunningFormInfo>, bundleName?: string): void;
70
71function on(
72    type: 'notifyVisible',
73    observerCallback: Callback<Array<formInfo.RunningFormInfo>>,
74    hostBundleName?: string
75  ): void;
76function off(
77    type: 'notifyVisible',
78    observerCallback?: Callback<Array<formInfo.RunningFormInfo>>,
79    hostBundleName?: string
80  ): void;
81
82function on(
83    type: 'notifyInvisible',
84    observerCallback: Callback<Array<formInfo.RunningFormInfo>>,
85    hostBundleName?: string
86  ): void;
87function off(
88    type: 'notifyInvisible',
89    observerCallback?: Callback<Array<formInfo.RunningFormInfo>>,
90    hostBundleName?: string
91  ): void;
92```
93
94修改后的接口原型:
95
96```ts
97function on(type: 'formAdd', observerCallback: Callback<formInfo.RunningFormInfo>): void;
98function on(type: 'formAdd', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void;
99function off(type: 'formAdd', hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void;
100
101function on(type: 'formRemove', observerCallback: Callback<formInfo.RunningFormInfo>): void;
102function on(type: 'formRemove', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void;
103function off(type: 'formRemove', hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void;
104
105function on(type: 'notifyVisible', observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void;
106function on(
107    type: 'notifyVisible',
108    hostBundleName: string,
109    observerCallback: Callback<Array<formInfo.RunningFormInfo>>
110  ): void;
111function off(
112    type: 'notifyVisible',
113    hostBundleName?: string,
114    observerCallback?: Callback<Array<formInfo.RunningFormInfo>>
115  ): void;
116
117function on(type: 'notifyInvisible', observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void;
118function on(
119    type: 'notifyInvisible',
120    hostBundleName: string,
121    observerCallback: Callback<Array<formInfo.RunningFormInfo>>,
122  ): void;
123function off(
124    type: 'notifyInvisible',
125    hostBundleName?: string,
126    observerCallback?: Callback<Array<formInfo.RunningFormInfo>>
127  ): void;
128```
129
130
131**适配指导**
132
133已使用相关接口开发的应用工程,需要对接口进行适配。从OpenHarmony 4.0.9.5版本起,相关接口使用应注意入参顺序的调整,将callback作为最后一个参数进行接口调用。
134
135**示例:**
136```ts
137import formObserver from '@ohos.app.form.formObserver';
138
139let bundleName = 'ohos.samples.FormApplication';
140let callback = function(data) {
141  console.log('a new form added, data: ${JSON.stringify(data)');
142}
143
144formHost.on('formAdd', callback);
145formHost.on('formAdd', bundleName, callback);
146```