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_RUNNING。 7 8**变更影响** 9 10对于已发布的js接口,可能影响三方应用的兼容性。 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```js 35import formObserver from @ohos.app.form.formObserver.d.ts; 36 37try { 38 formObserver.getRunningFormInfos((error, data) => { 39 if (error) { 40 console.error(`error, code: ${error.code}, message: ${error.message}`); 41 } else { 42 console.log('formHost getRunningFormInfos, data: ${JSON.stringify(data)}'); 43 } 44 }, 'com.example.ohos.formjsdemo'); 45} catch(error) { 46 console.error(`catch error, code: ${error.code}, message: ${error.message}`); 47} 48``` 49 50## cl.formfwk.2 事件订阅,取消订阅相关接口(on/off)参数顺序调整 51 52事件订阅,取消订阅相关接口(on/off)中的callback调整为接口最后一个参数。 53 54**变更影响** 55 56对于已发布的js接口,可能影响三方应用的兼容性。 57 58**关键的接口/组件变更** 59 60修改前的接口原型: 61 62```js 63function on(type: 'formAdd', observerCallback: Callback<formInfo.RunningFormInfo>, bundleName?: string): void; 64function off(type: 'formAdd', observerCallback?: Callback<formInfo.RunningFormInfo>, bundleName?: string): void; 65 66function on(type: 'formRemove', observerCallback: Callback<formInfo.RunningFormInfo>, bundleName?: string): void; 67function off(type: 'formRemove', observerCallback?: Callback<formInfo.RunningFormInfo>, bundleName?: string): void; 68 69function on( 70 type: 'notifyVisible', 71 observerCallback: Callback<Array<formInfo.RunningFormInfo>>, 72 hostBundleName?: string 73 ): void; 74function off( 75 type: 'notifyVisible', 76 observerCallback?: Callback<Array<formInfo.RunningFormInfo>>, 77 hostBundleName?: string 78 ): void; 79 80function on( 81 type: 'notifyInvisible', 82 observerCallback: Callback<Array<formInfo.RunningFormInfo>>, 83 hostBundleName?: string 84 ): void; 85function off( 86 type: 'notifyInvisible', 87 observerCallback?: Callback<Array<formInfo.RunningFormInfo>>, 88 hostBundleName?: string 89 ): void; 90``` 91 92修改后的接口原型: 93 94```js 95function on(type: 'formAdd', observerCallback: Callback<formInfo.RunningFormInfo>): void; 96function on(type: 'formAdd', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void; 97function off(type: 'formAdd', hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void; 98 99function on(type: 'formRemove', observerCallback: Callback<formInfo.RunningFormInfo>): void; 100function on(type: 'formRemove', hostBundleName: string, observerCallback: Callback<formInfo.RunningFormInfo>): void; 101function off(type: 'formRemove', hostBundleName?: string, observerCallback?: Callback<formInfo.RunningFormInfo>): void; 102 103function on(type: 'notifyVisible', observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void; 104function on( 105 type: 'notifyVisible', 106 hostBundleName: string, 107 observerCallback: Callback<Array<formInfo.RunningFormInfo>> 108 ): void; 109function off( 110 type: 'notifyVisible', 111 hostBundleName?: string, 112 observerCallback?: Callback<Array<formInfo.RunningFormInfo>> 113 ): void; 114 115function on(type: 'notifyInvisible', observerCallback: Callback<Array<formInfo.RunningFormInfo>>): void; 116function on( 117 type: 'notifyInvisible', 118 hostBundleName: string, 119 observerCallback: Callback<Array<formInfo.RunningFormInfo>>, 120 ): void; 121function off( 122 type: 'notifyInvisible', 123 hostBundleName?: string, 124 observerCallback?: Callback<Array<formInfo.RunningFormInfo>> 125 ): void; 126``` 127 128 129**适配指导** 130 131已使用相关接口开发的应用工程,需要对接口进行适配。从OpenHarmony 4.0.9.5版本起,相关接口使用应注意入参顺序的调整,将callback作为最后一个参数进行接口调用。 132 133**示例:** 134```js 135import formObserver from @ohos.app.form.formObserver.d.ts; 136 137let bundleName = 'ohos.samples.FormApplication'; 138let callback = function(data) { 139 console.log('a new form added, data: ${JSON.stringify(data)'); 140} 141 142formHost.on('formAdd', callback); 143formHost.on('formAdd', bundleName, callback); 144```