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