1 2# 分布式数据管理变更说明 3 4## cl.distributeddatamgr.1 @ohos.data.UDMF.d.ts拆分为@ohos.data.unifiedDataChannel.d.ts和@ohos.data.uniformTypeDescriptor.d.ts 5 6**变更影响** 7 8该变更为不兼容变更,原@ohos.data.UDMF.d.ts拆分为@ohos.data.unifiedDataChannel.d.ts和@ohos.data.uniformTypeDescriptor.d.ts。 9将原@ohos.data.UDMF.d.ts中定义的枚举类UnifiedDataType移动到@ohos.data.uniformTypeDescriptor.d.ts中并改名为UniformDataType, 10剩余接口定义移动到@ohos.data.unifiedDataChannel.d.ts中不做变化。 11 12**关键接口/组件变更** 13 14拆分前UnifiedDataType枚举类的定义: 15 16 | 名称 | 值 | 说明 | 17|----------------------------|------------------------------|-----------| 18| TEXT | 'Text' | 文本类型。 | 19| PLAIN_TEXT | 'Text.PlainText' | 纯文本类型。 | 20| HYPERLINK | 'Text.Hyperlink' | 超链接类型。 | 21| HTML | 'Text.HTML' | 富文本类型。 | 22| FILE | 'File' | 文件类型。 | 23| IMAGE | 'File.Media.Image' | 图片类型。 | 24| VIDEO | 'File.Media.Video' | 视频类型。 | 25| AUDIO | 'File.Media.Audio' | 音频类型。 | 26| FOLDER | 'File.Folder' | 文件夹类型。 | 27| SYSTEM_DEFINED_RECORD | 'SystemDefinedType' | 系统服务数据类型。 | 28| SYSTEM_DEFINED_FORM | 'SystemDefinedType.Form' | 卡片类型。 | 29| SYSTEM_DEFINED_APP_ITEM | 'SystemDefinedType.AppItem' | 图标类型。 | 30| SYSTEM_DEFINED_PIXEL_MAP | 'SystemDefinedType.PixelMap' | 二进制图片类型。 | 31| APPLICATION_DEFINED_RECORD | 'ApplicationDefinedType' | 应用自定义类型。 | 32 33拆分后改名为UniformDataType枚举类的定义: 341、删除了枚举值定义SYSTEM_DEFINED_RECORD和APPLICATION_DEFINED_RECORD。 352、枚举值SYSTEM_DEFINED_FORM改名为OPENHARMONY_FORM,枚举值SYSTEM_DEFINED_APP_ITEM改名为OPENHARMONY_APP_ITEM,枚举值SYSTEM_DEFINED_PIXEL_MAP改名为OPENHARMONY_PIXEL_MAP。 363、枚举值的字符串定义发生了变化。 37 38 | 名称 | 值 | 说明 | 39|----------------------------|------------------------------|-----------| 40| TEXT | 'general.text' | 文本类型。 | 41| PLAIN_TEXT | 'general.plain-text' | 纯文本类型。 | 42| HYPERLINK | 'general.hyperlink' | 超链接类型。 | 43| HTML | 'general.html' | 富文本类型。 | 44| FILE | 'general.file' | 文件类型。 | 45| IMAGE | 'general.image' | 图片类型。 | 46| VIDEO | 'general.video' | 视频类型。 | 47| AUDIO | 'general.audio' | 音频类型。 | 48| FOLDER | 'general.folder' | 文件夹类型。 | 49| OPENHARMONY_FORM | 'openharmony.form' | 卡片类型。 | 50| OPENHARMONY_APP_ITEM | 'openharmony.app-item' | 图标类型。 | 51| OPENHARMONY_PIXEL_MAP | 'openharmony.pixel-map' | 二进制图片类型。 | 52 53**适配指导** 54 55本次变更主要有以下几点需要开发人员适配: 561、将前文中的枚举值变化进行相应适配。 572、将导入模块由修改前的@ohos.data.UDMF模块更改为@ohos.data.unifiedDataChannel和@ohos.data.uniformTypeDescriptor两个模块。 583、根据导入模块的变化,将命名空间UDMF替换成对应的导入模块名,UnifiedDataType替换为UniformDataType。 59 60变更前代码示例: 61 62``` 63// 导入@ohos.data.UDMF模块 64import UDMF from '@ohos.data.UDMF'; 65 66// 创建一个统一数据对象实例 67let unifiedData = new UDMF.UnifiedData(image); 68 69// 创建纯文本数据类型记录,将其添加到刚才创建的UnifiedData对象 70let plainText = new UDMF.PlainText(); 71plainText.textContent = 'this is textContent of plainText'; 72unifiedData.addRecord(plainText); 73 74// 遍历每条记录,判断该记录的数据类型,转换为子类对象,得到原数据记录 75let records = unifiedData.getRecords(); 76for (let i = 0; i < records.length; i ++) { 77 // 读取该数据记录的类型 78 let type = records[i].getType(); 79 switch (type) { 80 case UDMF.UnifiedDataType.IMAGE: 81 // 转换得到原图片数据记录 82 let image = <UDMF.Image>(records[i]); 83 break; 84 case UDMF.UnifiedDataType.PLAIN_TEXT: 85 // 转换得到原文本数据记录 86 let plainText = <UDMF.PlainText>(records[i]); 87 break; 88 default: 89 break; 90 } 91} 92``` 93 94变更后代码示例: 95 96``` 97// 导入@ohos.data.unifiedDataChannel和@ohos.data.uniformTypeDescriptor模块 98import UDC from '@ohos.data.unifiedDataChannel'; 99import UTD from '@ohos.data.uniformTypeDescriptor'; 100 101// 创建一个统一数据对象实例 102let unifiedData = new UDC.UnifiedData(image); 103 104// 创建纯文本数据类型记录,将其添加到刚才创建的UnifiedData对象 105let plainText = new UDC.PlainText(); 106plainText.textContent = 'this is textContent of plainText'; 107unifiedData.addRecord(plainText); 108 109// 遍历每条记录,判断该记录的数据类型,转换为子类对象,得到原数据记录 110let records = unifiedData.getRecords(); 111for (let i = 0; i < records.length; i ++) { 112 // 读取该数据记录的类型 113 let type = records[i].getType(); 114 switch (type) { 115 case UTD.UniformDataType.IMAGE: 116 // 转换得到原图片数据记录 117 let image = <UDC.Image>(records[i]); 118 break; 119 case UTD.UniformDataType.PLAIN_TEXT: 120 // 转换得到原文本数据记录 121 let plainText = <UDC.PlainText>(records[i]); 122 break; 123 default: 124 break; 125 } 126} 127``` 128 129## cl.distributeddatamgr.2 data.DistributedObject.on参数变更 130 131**变更影响** 132 133无需应用适配变更。 134 135**关键接口/组件变更** 136 137共有2个on函数的参数发生变更 138 139修改前的接口原型 140 141 ```ts 142 on(type: 'change', callback: Callback<{ sessionId: string, fields: Array<string> }>): void; 143 on( 144 type: 'status', 145 callback: Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }> 146 ): void; 147 148 ``` 149 150修改后的接口原型 151 152 ```ts 153 on(type: 'change', callback: (sessionId: string, fields: Array<string>) => void): void; 154 on( 155 type: 'status', 156 callback: (sessionId: string, networkId: string, status: 'online' | 'offline' ) => void 157 ): void; 158 ``` 159 160**适配指导** 161 162无需应用适配变更。 163 164 165 166## cl.distributeddatamgr.3 data.DistributedObject.off参数变更 167 168**变更影响** 169 170无需应用适配变更。 171 172**关键接口/组件变更** 173 174共有2个off函数的参数发生变更 175 176修改前的接口原型 177 178 ```ts 179off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array<string> }>): void; 180off( 181 type: 'status', 182 callback?: Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }> 183): void; 184 185 ``` 186 187修改后的接口原型 188 189 ```ts 190off(type: 'change', callback?: (sessionId: string, fields: Array<string>) => void): void; 191off( 192 type: 'status', 193 callback?: (sessionId: string, networkId: string, status: 'online' | 'offline' ) => void 194): void; 195 ``` 196 197**适配指导** 198 199无需应用适配变更。 200 201 202 203## cl.distributeddatamgr.4 data.DataObject.on参数变更 204 205**变更影响** 206 207无需应用适配变更。 208 209**关键接口/组件变更** 210 211共有2个on函数的参数发生变更 212 213修改前的接口原型 214 215 ```ts 216on(type: 'change', callback: Callback<{ sessionId: string, fields: Array<string> }>): void; 217on( 218 type: 'status', 219 callback: Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }> 220): void; 221 222 ``` 223 224修改后的接口原型 225 226 ```ts 227on(type: 'change', callback: (sessionId: string, fields: Array<string>) => void): void; 228on( 229 type: 'status', 230 callback: (sessionId: string, networkId: string, status: 'online' | 'offline' ) => void 231): void; 232 ``` 233 234**适配指导** 235 236无需应用适配变更。 237 238 239 240## cl.distributeddatamgr.5 data.DataObject.off参数变更 241 242**变更影响** 243 244无需应用适配变更。 245 246**关键接口/组件变更** 247 248共有2个off函数的参数发生变更 249 250修改前的接口原型 251 252 ```ts 253off(type: 'change', callback?: Callback<{ sessionId: string, fields: Array<string> }>): void; 254off( 255 type: 'status', 256 callback?: Callback<{ sessionId: string, networkId: string, status: 'online' | 'offline' }> 257): void; 258 259 ``` 260 261修改后的接口原型 262 263 ```ts 264off(type: 'change', callback?: (sessionId: string, fields: Array<string>) => void): void; 265off( 266 type: 'status', 267 callback?: (sessionId: string, networkId: string, status: 'online' | 'offline' ) => void 268): void; 269 ``` 270 271**适配指导** 272 273无需应用适配变更。 274 275 276 277## cl.distributeddatamgr.6 data.preferences.on参数变更 278 279**变更影响** 280 281无需应用适配变更。 282 283**关键接口/组件变更** 284 285修改前的接口原型 286 287 ```ts 288on(type: 'multiProcessChange', callback: Callback<{ key : string }>): void 289on(type: 'change', callback: Callback<{ key : string }>): void 290 ``` 291 292修改后的接口原型 293 294 ```ts 295on(type: 'multiProcessChange', callback: ( key : string ) => void): void 296on(type: 'change', callback: ( key : string ) => void): void 297 ``` 298 299**适配指导** 300 301无需应用适配变更。 302 303 304 305## cl.distributeddatamgr.7 data.preferences.off参数变更 306 307**变更影响** 308 309无需应用适配变更。 310 311**关键接口/组件变更** 312 313修改前的接口原型 314 315 ```ts 316off(type: 'multiProcessChange', callback?: Callback<{ key : string }>): void 317off(type: 'change', callback?: Callback<{ key : string }>): void 318 ``` 319 320修改后的接口原型 321 322 ```ts 323off(type: 'multiProcessChange', callback?: ( key : string ) => void): void 324off(type: 'change', callback?: ( key : string ) => void): void 325 ``` 326 327**适配指导** 328 329无需应用适配变更。 330 331