1e41f4b71Sopenharmony_ci# ArkUI Subsystem Changelog
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci## cl.arkui.1 Return Value Type Change of getInspectorTree
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci**Change Impact**
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ciThe code that uses the **getInspectorTree** API in versions earlier than OpenHarmony 3.2.10.7 must be adapted.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci**Key API/Component Changes**
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ciThe return value of the **getInspectorTree** API is changed from the string type to the Object type.
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci**Adaptation Guide**
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ciAdapt the code that takes the return value of **getInspectorTree** as a string.The sample code is as follows:
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci- Before change:
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci```typescript
20e41f4b71Sopenharmony_ciconsole.info(getInspectorTree())
21e41f4b71Sopenharmony_ci```
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci- After change:
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci```typescript
26e41f4b71Sopenharmony_ciconsole.info(JSON.stringify(getInspectorTree())) 
27e41f4b71Sopenharmony_ci```
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci## cl.arkui.2 Deprecation the forceRebuild Attribute of \<GridItem>
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**Change Impact**
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ciNone. The attribute has no effect.
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci**Key API/Component Changes**
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ciDeprecate the **forceRebuild** attribute of the **\<GridItem>** component.
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci**Adaptation Guide**
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ciDelete the code that uses the **forceRebuild** attribute. This will not affect the functionality of the **\<GridItem>** component.
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci## cl.arkui.3 Plugin Module API Changes
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci
46e41f4b71Sopenharmony_ci### 1. API Change in the **PluginComponentTemplate** Module
47e41f4b71Sopenharmony_ci
48e41f4b71Sopenharmony_ciRenamed the **ability** parameter **bundleName** to more clearly indicate the intended meaning.
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_ciYou need to adapt your application.
51e41f4b71Sopenharmony_ci
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci
54e41f4b71Sopenharmony_ci**Change Impact**
55e41f4b71Sopenharmony_ci
56e41f4b71Sopenharmony_ciThe application developed based on earlier versions must be adapted to the change. Otherwise, build errors will occur.
57e41f4b71Sopenharmony_ci
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci
60e41f4b71Sopenharmony_ci**Key API/Component Changes**
61e41f4b71Sopenharmony_ci
62e41f4b71Sopenharmony_ci- Involved APIs:
63e41f4b71Sopenharmony_ci
64e41f4b71Sopenharmony_ci interface PluginComponentTemplate {
65e41f4b71Sopenharmony_ci  source: string;
66e41f4b71Sopenharmony_ci  bundleName: string;
67e41f4b71Sopenharmony_ci  }
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci  interface PluginComponentInterface {
70e41f4b71Sopenharmony_ci  (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute;
71e41f4b71Sopenharmony_ci}
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci- Before change:
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci```js
76e41f4b71Sopenharmony_ci interface PluginComponentTemplate { source: string; ability: string; }
77e41f4b71Sopenharmony_ci interface PluginComponentInterface {
78e41f4b71Sopenharmony_ci  (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; 
79e41f4b71Sopenharmony_ci  }
80e41f4b71Sopenharmony_ci```
81e41f4b71Sopenharmony_ci
82e41f4b71Sopenharmony_ci- After change:
83e41f4b71Sopenharmony_ci
84e41f4b71Sopenharmony_ci```js
85e41f4b71Sopenharmony_ci interface PluginComponentTemplate { source: string; bundleName: string; }
86e41f4b71Sopenharmony_ci interface PluginComponentInterface {
87e41f4b71Sopenharmony_ci  (value: { template: PluginComponentTemplate; data: any }): PluginComponentAttribute; 
88e41f4b71Sopenharmony_ci  }
89e41f4b71Sopenharmony_ci```
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci**Adaptation Guide**
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ciUse the new API. The sample code is as follows:
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci- Before change:
96e41f4b71Sopenharmony_ci```js
97e41f4b71Sopenharmony_ciPluginComponent({
98e41f4b71Sopenharmony_ci    template: { source: 'plugincomponent1', ability: 'com.example.plugin' },
99e41f4b71Sopenharmony_ci    data: { 'countDownStartValue': 'new countDownStartValue' }
100e41f4b71Sopenharmony_ci}).size({ width: 500, height: 100 })
101e41f4b71Sopenharmony_ci```
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ci- After change:
104e41f4b71Sopenharmony_ci```js
105e41f4b71Sopenharmony_ciPluginComponent({
106e41f4b71Sopenharmony_ci    template: { source: 'plugincomponent1', bundleName: 'com.example.plugin' },
107e41f4b71Sopenharmony_ci    data: { 'countDownStartValue': 'new countDownStartValue' }
108e41f4b71Sopenharmony_ci}).size({ width: 500, height: 100 })
109e41f4b71Sopenharmony_ci```
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci### 2. API Change in the **pluginComponentManager** Module
112e41f4b71Sopenharmony_ci
113e41f4b71Sopenharmony_ciRenamed the **want** parameter **target** to more clearly indicate the intended meaning.
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ciYou need to adapt your application.
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ci**Change Impact**
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ciThe application developed based on earlier versions must be adapted to the change. Otherwise, alarms will arise. Though the build may be successful, the API will not work as intended.
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci**Key API/Component Changes**
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci- Involved APIs:
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ci  interface PushParameterForStage {
130e41f4b71Sopenharmony_ci    owner: Want;
131e41f4b71Sopenharmony_ci    target: Want;
132e41f4b71Sopenharmony_ci    name: string;
133e41f4b71Sopenharmony_ci    data: KVObject;
134e41f4b71Sopenharmony_ci    extraData: KVObject;
135e41f4b71Sopenharmony_ci    jsonPath?: string;
136e41f4b71Sopenharmony_ci  }
137e41f4b71Sopenharmony_ci
138e41f4b71Sopenharmony_ci  function push(param: PushParameterForStage, callback: AsyncCallback\<void>): void;
139e41f4b71Sopenharmony_ci
140e41f4b71Sopenharmony_ci  interface RequestParameterForStage {
141e41f4b71Sopenharmony_ci    owner: Want;
142e41f4b71Sopenharmony_ci    target: Want;
143e41f4b71Sopenharmony_ci    name: string;
144e41f4b71Sopenharmony_ci    data: KVObject;
145e41f4b71Sopenharmony_ci    jsonPath?: string;
146e41f4b71Sopenharmony_ci  }
147e41f4b71Sopenharmony_ci
148e41f4b71Sopenharmony_ci  function request(param: RequestParameterForStage, callback: AsyncCallback\<RequestCallbackParameters>): void;
149e41f4b71Sopenharmony_ci
150e41f4b71Sopenharmony_ci- Before change:
151e41f4b71Sopenharmony_ci
152e41f4b71Sopenharmony_ci```js
153e41f4b71Sopenharmony_ci  interface PushParameterForStage {
154e41f4b71Sopenharmony_ci    owner: Want;
155e41f4b71Sopenharmony_ci    want: Want;
156e41f4b71Sopenharmony_ci    name: string;
157e41f4b71Sopenharmony_ci    data: KVObject;
158e41f4b71Sopenharmony_ci    extraData: KVObject;
159e41f4b71Sopenharmony_ci    jsonPath?: string;
160e41f4b71Sopenharmony_ci  }
161e41f4b71Sopenharmony_ci
162e41f4b71Sopenharmony_ci  function push(param: PushParameterForStage, callback: AsyncCallback<void>): void;
163e41f4b71Sopenharmony_ci
164e41f4b71Sopenharmony_ci  interface RequestParameterForStage {
165e41f4b71Sopenharmony_ci    owner: Want;
166e41f4b71Sopenharmony_ci    want: Want;
167e41f4b71Sopenharmony_ci    name: string;
168e41f4b71Sopenharmony_ci    data: KVObject;
169e41f4b71Sopenharmony_ci    jsonPath?: string;
170e41f4b71Sopenharmony_ci  }
171e41f4b71Sopenharmony_ci
172e41f4b71Sopenharmony_ci  function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void;
173e41f4b71Sopenharmony_ci```
174e41f4b71Sopenharmony_ci
175e41f4b71Sopenharmony_ci- After change:
176e41f4b71Sopenharmony_ci
177e41f4b71Sopenharmony_ci```js
178e41f4b71Sopenharmony_ci  interface PushParameterForStage {
179e41f4b71Sopenharmony_ci    owner: Want;
180e41f4b71Sopenharmony_ci    target: Want;
181e41f4b71Sopenharmony_ci    name: string;
182e41f4b71Sopenharmony_ci    data: KVObject;
183e41f4b71Sopenharmony_ci    extraData: KVObject;
184e41f4b71Sopenharmony_ci    jsonPath?: string;
185e41f4b71Sopenharmony_ci  }
186e41f4b71Sopenharmony_ci
187e41f4b71Sopenharmony_ci  function push(param: PushParameterForStage, callback: AsyncCallback<void>): void;
188e41f4b71Sopenharmony_ci
189e41f4b71Sopenharmony_ci  interface RequestParameterForStage {
190e41f4b71Sopenharmony_ci    owner: Want;
191e41f4b71Sopenharmony_ci    target: Want;
192e41f4b71Sopenharmony_ci    name: string;
193e41f4b71Sopenharmony_ci    data: KVObject;
194e41f4b71Sopenharmony_ci    jsonPath?: string;
195e41f4b71Sopenharmony_ci  }
196e41f4b71Sopenharmony_ci
197e41f4b71Sopenharmony_ci  function request(param: RequestParameterForStage, callback: AsyncCallback<RequestCallbackParameters>): void;
198e41f4b71Sopenharmony_ci```
199e41f4b71Sopenharmony_ci
200e41f4b71Sopenharmony_ci**Adaptation Guide**
201e41f4b71Sopenharmony_ci
202e41f4b71Sopenharmony_ciUse the new API. The sample code is as follows:
203e41f4b71Sopenharmony_ci
204e41f4b71Sopenharmony_ci- Before change:
205e41f4b71Sopenharmony_ci```js
206e41f4b71Sopenharmony_ciimport pluginComponentManager from '@ohos.pluginComponent'
207e41f4b71Sopenharmony_ci
208e41f4b71Sopenharmony_cipluginComponentManager.push({
209e41f4b71Sopenharmony_ci    owner:{
210e41f4b71Sopenharmony_ci          bundleName:"com.example.provider",
211e41f4b71Sopenharmony_ci          abilityName:"com.example.provider.MainAbility"
212e41f4b71Sopenharmony_ci    },
213e41f4b71Sopenharmony_ci    want: {
214e41f4b71Sopenharmony_ci        bundleName: "com.example.provider",
215e41f4b71Sopenharmony_ci        abilityName: "com.example.provider.MainAbility",
216e41f4b71Sopenharmony_ci    },
217e41f4b71Sopenharmony_ci    name: "ets/pages/plugin2.js",
218e41f4b71Sopenharmony_ci    data: {
219e41f4b71Sopenharmony_ci        "js": "ets/pages/plugin.js",
220e41f4b71Sopenharmony_ci        "key_1": 1111,
221e41f4b71Sopenharmony_ci    },
222e41f4b71Sopenharmony_ci    extraData: {
223e41f4b71Sopenharmony_ci        "extra_str": "this is push event"
224e41f4b71Sopenharmony_ci    },
225e41f4b71Sopenharmony_ci    jsonPath: "",
226e41f4b71Sopenharmony_ci  },
227e41f4b71Sopenharmony_ci    (err, data) => {
228e41f4b71Sopenharmony_ci        console.log("push_callback:err: " ,JSON.stringify(err));
229e41f4b71Sopenharmony_ci        console.log("push_callback:data: " , JSON.stringify(data));
230e41f4b71Sopenharmony_ci        console.log("push_callback: push ok!");
231e41f4b71Sopenharmony_ci    }
232e41f4b71Sopenharmony_ci)
233e41f4b71Sopenharmony_ci
234e41f4b71Sopenharmony_cipluginComponentManager.request({
235e41f4b71Sopenharmony_ci    owner:{
236e41f4b71Sopenharmony_ci        bundleName:"com.example.provider",
237e41f4b71Sopenharmony_ci        abilityName:"com.example.provider.MainAbility"
238e41f4b71Sopenharmony_ci    },
239e41f4b71Sopenharmony_ci    want: {
240e41f4b71Sopenharmony_ci        bundleName: "com.example.provider",
241e41f4b71Sopenharmony_ci        abilityName: "ets/pages/plugin2.js",
242e41f4b71Sopenharmony_ci    },
243e41f4b71Sopenharmony_ci    name: "plugintemplate",
244e41f4b71Sopenharmony_ci    data: {
245e41f4b71Sopenharmony_ci        "key_1": " myapplication plugin component test",
246e41f4b71Sopenharmony_ci        "key_2": 123456
247e41f4b71Sopenharmony_ci    },
248e41f4b71Sopenharmony_ci    jsonPath: "",
249e41f4b71Sopenharmony_ci},
250e41f4b71Sopenharmony_ci    (err, data) => {
251e41f4b71Sopenharmony_ci            console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability)
252e41f4b71Sopenharmony_ci            console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source)
253e41f4b71Sopenharmony_ci    }
254e41f4b71Sopenharmony_ci)
255e41f4b71Sopenharmony_ci```
256e41f4b71Sopenharmony_ci
257e41f4b71Sopenharmony_ci- After change:
258e41f4b71Sopenharmony_ci```js
259e41f4b71Sopenharmony_ciimport pluginComponentManager from '@ohos.pluginComponent'
260e41f4b71Sopenharmony_ci
261e41f4b71Sopenharmony_cipluginComponentManager.push({
262e41f4b71Sopenharmony_ci    owner:{
263e41f4b71Sopenharmony_ci          bundleName:"com.example.provider",
264e41f4b71Sopenharmony_ci          abilityName:"com.example.provider.MainAbility"
265e41f4b71Sopenharmony_ci    },
266e41f4b71Sopenharmony_ci    target: {
267e41f4b71Sopenharmony_ci        bundleName: "com.example.provider",
268e41f4b71Sopenharmony_ci        abilityName: "com.example.provider.MainAbility",
269e41f4b71Sopenharmony_ci    },
270e41f4b71Sopenharmony_ci    name: "ets/pages/plugin2.js",
271e41f4b71Sopenharmony_ci    data: {
272e41f4b71Sopenharmony_ci        "js": "ets/pages/plugin.js",
273e41f4b71Sopenharmony_ci        "key_1": 1111,
274e41f4b71Sopenharmony_ci    },
275e41f4b71Sopenharmony_ci    extraData: {
276e41f4b71Sopenharmony_ci        "extra_str": "this is push event"
277e41f4b71Sopenharmony_ci    },
278e41f4b71Sopenharmony_ci    jsonPath: "",
279e41f4b71Sopenharmony_ci  },
280e41f4b71Sopenharmony_ci    (err, data) => {
281e41f4b71Sopenharmony_ci        console.log("push_callback:err: " ,JSON.stringify(err));
282e41f4b71Sopenharmony_ci        console.log("push_callback:data: " , JSON.stringify(data));
283e41f4b71Sopenharmony_ci        console.log("push_callback: push ok!");
284e41f4b71Sopenharmony_ci    }
285e41f4b71Sopenharmony_ci)
286e41f4b71Sopenharmony_ci
287e41f4b71Sopenharmony_cipluginComponentManager.request({
288e41f4b71Sopenharmony_ci    owner:{
289e41f4b71Sopenharmony_ci        bundleName:"com.example.provider",
290e41f4b71Sopenharmony_ci        abilityName:"com.example.provider.MainAbility"
291e41f4b71Sopenharmony_ci    },
292e41f4b71Sopenharmony_ci    target: {
293e41f4b71Sopenharmony_ci        bundleName: "com.example.provider",
294e41f4b71Sopenharmony_ci        abilityName: "ets/pages/plugin2.js",
295e41f4b71Sopenharmony_ci    },
296e41f4b71Sopenharmony_ci    name: "plugintemplate",
297e41f4b71Sopenharmony_ci    data: {
298e41f4b71Sopenharmony_ci        "key_1": " myapplication plugin component test",
299e41f4b71Sopenharmony_ci        "key_2": 123456
300e41f4b71Sopenharmony_ci    },
301e41f4b71Sopenharmony_ci    jsonPath: "",
302e41f4b71Sopenharmony_ci},
303e41f4b71Sopenharmony_ci    (err, data) => {
304e41f4b71Sopenharmony_ci            console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability)
305e41f4b71Sopenharmony_ci            console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source)
306e41f4b71Sopenharmony_ci    }
307e41f4b71Sopenharmony_ci)
308e41f4b71Sopenharmony_ci```
309