1# ArkUI子系统Changelog 2 3## cl.arkui.1 UIExtensionComponent增加使用约束 4 5**访问级别** 6 7系统接口 8 9**变更原因** 10 11变更前文档中UIExtensionComponent为系统接口,但在实现中并未做系统应用访问校验。 12 13**变更影响** 14 15该变更为不兼容变更。 16 17UIExtensionComponent增加系统应用访问校验。 18 19**起始API Level** 20 2110 22 23**变更发生版本** 24 25从OpenHarmony SDK 5.0.0.32开始。 26 27**变更的接口/组件** 28 29UIExtensionComponent组件。 30 31**适配指导** 32 33使用UIExtensionComponent的必须为系统应用。 34 35## cl.arkui.2 DatePickerDialog显示时间时分割线延长 36 37**访问级别** 38 39公开接口 40 41**变更原因** 42 43修正视觉效果以获得更好的用户体验。 44 45**变更影响** 46 47该变更为不兼容变更。 48 49| 变更前 | 变更后 | 50|---------|---------| 51|  |  | 52 53**起始API Level** 54 5512 56 57**变更发生版本** 58 59从OpenHarmony SDK 5.0.0.32 版本开始。 60 61**变更的接口/组件** 62 63涉及的组件:DatePickerDialog。 64 65**适配指导** 66 67默认行为变更,无需适配。 68 69## cl.arkui.4 List的constraintSize设置生效 70 71**访问级别** 72 73公开接口 74 75**变更原因** 76 77List的布局行为和当前通用的布局约束优先的规格不一致。 78 79**变更影响** 80 81该变更为不兼容变更。 82 83变更前,List不设置Height时,constraintSize的minHeight设置不生效。 84 85变更后,List不设置Height时,constraintSize的minHeight设置会生效。 86 87```ts 88@Entry 89@Component 90struct ListExample { 91 build() { 92 List({ space: 5 }) { 93 ForEach([1, 2, 3, 4, 5], (item: number) => { 94 ListItem() { 95 Text('' + item) 96 .width('100%').height(50) 97 .textAlign(TextAlign.Center).backgroundColor(0xFFFFFF) 98 } 99 }, (item: string) => item) 100 } 101 .padding(5) 102 .constraintSize({ minHeight: 500 }) 103 .backgroundColor(0xDCDCDC) 104 } 105} 106``` 107 108如下是以上示例代码变更前后效果对比: 109 110 | 变更前 | 变更后 | 111|---------|---------| 112|  |  | 113 114**起始API Level** 115 1167 117 118**变更发生版本** 119 120从OpenHarmony SDK 5.0.0.32开始。 121 122**变更的接口/组件** 123 124List组件的constraintSize接口。 125 126**适配指导** 127 128如果List没有设置height属性,且设置了constraintSize的minHeight属性。变更后minHeight属性生效,导致布局界面变化,如果需要保持之前的布局界面,可以删除constraintSize的minHeight属性。 129 130如下代码,变更前constraintSize的minHeight属性不生效,变更后constraintSize的minHeight属性生效导致显示界面变化。 131```ts 132@Entry 133@Component 134struct ListExample { 135 build() { 136 List({ space: 5 }) { 137 ForEach([1, 2, 3, 4, 5], (item: number) => { 138 ListItem() { 139 Text('' + item) 140 .width('100%').height(50) 141 .textAlign(TextAlign.Center).backgroundColor(0xFFFFFF) 142 } 143 }, (item: string) => item) 144 } 145 .padding(5) 146 .constraintSize({ minHeight: 500, maxHeight: 1000 }) 147 .backgroundColor(0xDCDCDC) 148 } 149} 150``` 151删除constraintSize接口minHeight设置可以恢复之前的效果。 152```ts 153@Entry 154@Component 155struct ListExample { 156 build() { 157 List({ space: 5 }) { 158 ForEach([1, 2, 3, 4, 5], (item: number) => { 159 ListItem() { 160 Text('' + item) 161 .width('100%').height(50) 162 .textAlign(TextAlign.Center).backgroundColor(0xFFFFFF) 163 } 164 }, (item: string) => item) 165 } 166 .padding(5) 167 .constraintSize({ maxHeight: 1000 }) 168 .backgroundColor(0xDCDCDC) 169 } 170} 171``` 172 173## cl.arkui.5 模态UIExtension创建默认行为变更 174 175**访问级别** 176 177公开接口 178 179**变更原因** 180 181通过各个应用或者kit提供的开放能力创建出来的模态`UIExtension`,可能被三方应用组件或窗口遮挡,造成安全风险。 182> 各个应用或者kit是通过`CreateModalUIExtension`这个系统接口来创建模态`UIExtension`, 183> 本质上是这个接口的默认行为发生了变化 184 185**变更影响** 186 187该变更为不兼容变更。 188 189模态`UIExtension`不允许被不安全窗口遮挡,拉起模态`UIExtension`时,会隐藏三方应用已创建的不安全窗口和组件,并阻止三方应用创建新的不安全窗口 190 191变更前后行为如下表所示: 192 193| 变更前 | 变更后 | 194| ---------------------------------------- | -------------------------------------------- | 195| 允许不安全窗口遮挡,允许三方应用组件遮挡 | 不允许不安全窗口遮挡,不允许三方应用组件遮挡 | 196 197不安全窗口的定义新增宿主创建的Dialog窗口,变更前后不安全窗口包含的窗口类型如下表所示。 198 199| 变更前 | 变更后 | 200| ---------------------------------------- | ------------------------------------------------------------ | 201| 非系统全局悬浮窗<br>宿主创建的非系统子窗 | 非系统全局悬浮窗<br>宿主创建的非系统子窗<br>宿主创建的非系统Dialog窗口 | 202 203**变更前**: 204 205图中的权限弹窗就是一个模态UIExtension,该窗口弹出后,通话子窗口不会被隐藏 206 207 208 209**变更后**: 210 211图中的权限弹窗就是一个模态UIExtension,该窗口弹出后,通话子窗口被隐藏,退出后通话子窗口重新展示 212 213 214 215**起始API Level** 216 21711 218 219**变更发生版本** 220 221从OpenHarmony SDK 5.0.0.32开始。 222 223**变更的接口/组件** 224 225| kit名称 | 接口名/组件名 | 226| ----------------- | ------------------------------------------------------------ | 227| Core File Kit | DocumentViewPicker组件 | 228| Store Kit | productViewManager.loadService<br>productViewManager.loadProduct | 229| Media Library Kit | PhotoAccessHelper.createDeleteRequest<br>PhotoAccessHelper. removeAssets<br>PhotoAccessHelper.showAssetsCreationDialog<br>PhotoAccessHelper.createAssetWithShortTermPermission<br>PhotoAccessHelper.select | 230| Scan Kit | scanBarcode.startScanForResult | 231| Ads Kit | advertising.showAd | 232| AbilityKit | AtManager.requestPermissionsFromUser | 233| ShareKit | SystemShare.show | 234| Game Service Kit | gamePlayer.init<br/>gamePlayer.unionLogin<br/>gamePlayer.getLocalPlayer<br/>gamePlayer.verifyLocalPlayer | 235| Map Kit | sceneMap.chooseLocation<br/>sceneMap.queryLocation<br/>sceneMap.selectDistrict | 236| Account Kit | authentication.executeRequest.LoginWithHuaweiID<br/>authentication.executeRequest.AuthorizationWithHuaweiID<br/>extendService.verifyAccount<br/>extendService.startAccountCenter<br/>loginComponent.LoginWithHuaweiIDButton<br/>loginComponent.LoginPanel<br/>loginComponent.startFacialRecognitionVerification<br/>realName.startFacialRecognitionVerification<br/>shippingAddress.chooseAddress<br/>minorsProtection.verifyMinorsProtectionCredential<br/>minorsProtection.leadToTurnOnMinorsMode<br/>minorsProtection.leadToTurnOffMinorsMode | 237| ArkUI | TextInput输入框组件(仅系统密码自动填充服务场景涉及, <br>InputType设置为USER_NAME/Password/NEW_PASSWORD类型) | 238 239**适配指导** 240 241默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响。 242 243## cl.arkui.6 AlphabetIndexer组件autoCollapse属性默认值由false改为true 244 245**访问级别** 246 247公开接口 248 249**变更原因** 250 251自适应折叠模式使用场景更广,显示效果更加灵活,默认开启自适应折叠模式更符合开发者期望。 252 253**变更影响** 254 255该变更为不兼容变更。 256 257API version 12之前:autoCollapse属性默认值为false,当AlphabetIndexer组件高度不足时,不会折叠显示。 258 259 260 261API version 12及之后:autoCollapse属性默认值为true,当AlphabetIndexer组件高度不足时,会折叠显示。 262 263 264 265**起始API Level** 266 26711 268 269**变更发生版本** 270 271从OpenHarmony SDK 5.0.0.32开始。 272 273**变更的接口/组件** 274 275AlphabetIndexer组件 276 277**适配指导** 278 279默认行为变更,默认开启自适应折叠模式,若要关闭自适应折叠模式,可通过设置[autoCollapse](../../../application-dev/reference/apis-arkui/arkui-ts/ts-container-alphabet-indexer.md#autocollapse11)属性进行适配。 280 281## cl.arkui.7 元服务AppBar调整Z序到弹框之上 282**访问级别** 283 284公开接口 285 286**变更原因** 287 288元服务AppBar按钮在有弹框的情况下,只需点击一次即可拉起服务面板,使用户能够更方便的使用元服务。 289 290**变更影响** 291 292该变更为不兼容性变更,仅涉及UI显示效果,UI显示效果仅在元服务生效。 293 294API version 11及以前:bindMenu,AlertDialog,CustomDialog,bindPopup,bindSheet,bindContentCover等弹框层级都在AppBar之上。蒙层会覆盖AppBar。 295 296 297 298API version 12及以后:针对元服务,大部分弹框层级都在AppBar之下。AppBar按钮悬浮在蒙层之上,只点击一次即可拉起服务面板。 299 300 301 302涉及的弹框范围:bindMenu,AlertDialog,CustomDialog,bindPopup,bindSheet,bindContentCover等非子窗模式弹框。 303 304**起始API Level** 3059 306 307**变更发生版本** 308 309从OpenHarmony SDK 5.0.0.32开始。 310 311 312**适配指导** 313 314接口行为变更,无需适配. 315 316## cl.arkui.8 RichEditor组件builderSpan支持绑定自定义菜单 317 318**访问级别** 319 320公开接口 321 322**变更原因** 323 324富文本支持builderSpan绑定自定义菜单。 325 326**变更影响** 327 328该变更为不兼容变更。 329 330变更前:右击或长按builderSpan会弹出对RichEditorSpanType.IMAGE类型绑定的自定义菜单。 331 332变更后:新增自定义菜单绑定类型RichEditorSpanType.BUILDER,builderSpan和imageSpan分开绑定和弹出自定义菜单。右击或长按builderSpan不再弹出对RichEditorSpanType.IMAGE类型绑定的自定义菜单,而是弹出对RichEditorSpanType.BUILDER类型绑定的自定义菜单。 333 334**起始API Level** 335 33610 337 338 339**变更发生版本** 340 341从OpenHarmony SDK 5.0.0.32开始。 342 343**变更的接口/组件** 344 345RichEditor组件的RichEditorSpanType接口。 346 347**适配指导** 348 349若开发者需要右击或长按builderSpan时弹出RichEditorSpanType.IMAGE类型的自定义菜单,需要对该自定义菜单绑定RichEditorSpanType.BUILDER类型。 350```ts 351@Entry 352@Component 353struct Example { 354 @Builder 355 menu() { 356 Column() { 357 Text("自定义菜单"); 358 } 359 } 360 build() { 361 Column() { 362 RichEditor({controller: new RichEditorController()}) 363 // 变更前 364 .bindSelectionMenu(RichEditorSpanType.IMAGE, this.menu(), ResponseType.LongPress) 365 366 // 变更后 367 .bindSelectionMenu(RichEditorSpanType.IMAGE, this.menu(), ResponseType.LongPress) 368 // 绑定RichEditorSpanType.BUILDER类型 369 .bindSelectionMenu(RichEditorSpanType.BUILDER, this.menu(), ResponseType.LongPress) 370 } 371 } 372} 373``` 374 375## cl.arkui.9 文本计算接口fontSize参数默认单位实现修正 376 377**访问级别** 378 379公开接口 380 381**变更原因** 382 383fontSize参数在文档描述中number类型默认单位是fp,实际实现是vp。 384 385**变更影响** 386 387系统设置显示和亮度下字体大小使用标准字体,该变更为兼容变更,变更前后文本计算接口返回结果相同。 388 389系统设置显示和亮度下字体大小使用特大字体,该变更为不兼容变更。 390 391变更前:measureText接口的fontSize参数传入number类型数值,获取到的文本计算宽度小于实际文本显示所需宽度。 392 393变更后:measureText接口的fontSize参数传入number类型数值,获取到的文本计算宽度等于实际文本显示所需宽度。 394 395**起始API Level** 396 397measureText:9,measureTextSize:10 398 399**变更发生版本** 400 401从OpenHarmony SDK 5.0.0.32开始。 402 403**变更的接口/组件** 404 405measureText和measureTextSize接口。 406 407**适配指导** 408 409若在Text组件上,fontSize设置的是vp类型字号,则在measureText测算接口将fontSize的number类型参数改为string类型,传入vp类型字号参数。 410``` 411import { MeasureText } from '@kit.ArkUI' 412 413@Entry 414@Component 415struct Index { 416 @State text: string = "Hello world" 417 //变更前 418 @State textWidth: number = MeasureText.measureText({ 419 textContent: this.text, 420 fontSize: 24 421 }) 422 //变更后 423 @State textWidth2: number = MeasureText.measureText({ 424 textContent: this.text, 425 fontSize: '24vp' 426 }) 427 428 build() { 429 Row() { 430 Column() { 431 //被计算文本 432 Text(this.text).fontSize('24vp') 433 Text(`The width of '24vp Hello World': ${this.textWidth}`) 434 Text(`The another width of '24vp Hello World': ${this.textWidth2}`) 435 } 436 .width('100%') 437 } 438 .height('100%') 439 } 440} 441``` 442 443若在Text组件上,fontSize设置的是fp类型字号则无需适配,测算接口fontSize参数传入number类型数值和Text组件上使用的字号单位是一致的。 444 445## cl.arkui.10 光标默认样式变更 446 447**访问级别** 448 449系统接口 450 451**变更原因** 452 453默认样式变更。 454 455**变更影响** 456 457该变更为不兼容变更。 458 459变更前:光标小圆圈默认直径为20vp。 460 461变更后:光标小圆圈默认直径为16vp。 462 463变更前后对比效果,如下表所示 464| 变更前 | 变更后 | 465| --- | --- | 466| | | 467 468**起始API Level** 469 470不涉及公开接口。 471 472**变更发生版本** 473 474从OpenHarmony SDK 5.0.0.32开始。 475 476**变更的接口/组件** 477 478涉及光标的组件:TextInput、TextArea、Search、RichEditor。 479 480**适配指导** 481 482默认效果变更,无需适配。 483 484## cl.arkui.11 高级组件SelectionMenu默认样式变更 485 486**访问级别** 487 488系统接口 489 490**变更原因** 491 492默认样式变更。 493 494**变更影响** 495 496该变更为不兼容变更。 497 498变更前:自定义文本选择菜单点击“更多”后展开菜单会显示内置的置灰项分享翻译搜索。 499 500变更后:自定义文本选择菜单点击“更多”后展开菜单去除内置的置灰项分享翻译搜索。 501 502变更前后对比效果,如下表所示: 503 504| 变更前 | 变更后 | 505| --- | --- | 506| | | 507 508**起始API Level** 509 510不涉及公开接口。 511 512**变更发生版本** 513 514从OpenHarmony SDK 5.0.0.32开始。 515 516**变更的接口/组件** 517 518高级组件SelectionMenu。 519 520**适配指导** 521 522默认效果变更,无需适配。 523 524## cl.arkui.12 Svg根节点视窗外图片内容裁剪 525 526**访问级别** 527 528公开接口 529 530**变更原因** 531 532修正视觉效果以符合Svg标准。 533 534**变更影响** 535 536该变更为不兼容变更。 537 538``` 539<svg width="100" height="100" viewBox="0 0 300 300" version="1.1"> 540 <defs> 541 <circle id = "circleId" cx="100" cy="50" r="40" fill="red"/> 542 </defs> 543 <polygon points="220,100 300,210 170,250 123,234" style="fill:#cccccc;stroke:#000000;stroke-width:1"/> 544 <use href="#circleId" x = "300" y= "150" width="50" height="50"/> 545</svg> 546``` 547| 变更前 | 变更后 | 548|---------|---------| 549| 绘制内容超出根节点视窗区域会显示 | 绘制内容超出根节点视窗区域不显示 | 550|  |  | 551 552**起始API Level** 553 55412 555 556**变更发生版本** 557 558从OpenHarmony SDK 5.0.0.32 版本开始。 559 560**变更的接口/组件** 561 562涉及的组件:Image、ImageSpan、Canvas。 563 564**适配指导** 565 566默认行为变更,无需适配,但应注意变更后的行为是否对整体应用显示效果产生影响。 567 568## cl.arkui.13 子窗显示的toast不响应返回事件 569**访问级别** 570 571公开接口 572 573**变更原因** 574 575业界惯例toast不会响应返回手势事件,当前子窗下的toast会响应返回事件,不符合规范。 576 577**变更影响** 578 579该变更为不兼容变更。 580 581变更前:toast会响应返回手势,toast消失。 582 583变更后:toast不会响应返回手势,toast不消失,返回手势事件传递到页面其他组件。 584 585**起始API Level** 586 5879 588 589**变更发生版本** 590 591从OpenHarmony SDK 5.0.0.32开始。 592 593**变更的接口/组件** 594 595promptAction.showToast 596 597**适配指导** 598 599默认行为变更,无需适配,但应注意后续不支持通过返回手势退出toast。 600 601## cl.arkui.14 带按钮的气泡样式变更 602**访问级别** 603 604公开接口 605 606**变更原因** 607 608popup的按钮文本过长时,布局显示异常。 609 610**变更影响** 611 612该变更为不兼容变更。 613 614 615| 变更前 | 变更后 | 616|---------|---------| 617| 按钮文本的最大行数没有限制,按钮内容会相互交叉 | 最多可显示两行文本,文本逐渐缩小到9vp,仍然超长"..."省略 | 618|  |  | 619 620 621**起始API Level** 622 6237 624 625**变更发生版本** 626 627从OpenHarmony SDK 5.0.0.32开始。 628 629**变更的接口/组件** 630 631bindPopup 632 633**适配指导** 634 635默认效果变更,无需适配。 636 637## cl.arkui.15 toast样式变更 638**访问级别** 639 640公开接口 641 642**变更原因** 643 644toast文本有两行时,有概率出现文本居中显示,不符合规范,规范为toast多行显示时,需左对齐显示。 645 646**变更影响** 647 648该变更为不兼容变更。 649 650| 变更前 | 变更后 | 651|---------|---------| 652| 文本居中显示 | 文本左对齐显示 | 653|  |  | 654 655**起始API Level** 656 6579 658 659**变更发生版本** 660 661从OpenHarmony SDK 5.0.0.32开始。 662 663**变更的接口/组件** 664 665promptAction.showToast 666 667**适配指导** 668 669默认效果变更,无需适配。 670 671## cl.arkui.16 高级组件ComposeListItem右边按钮OperateItem类型为arrow或者arrow+text时,在没有配置action的时候,不需要单独响应点击效果,应显示全局的按压效果 672 673**访问级别** 674 675公开接口 676 677**变更原因** 678 679高级组件ComposeListItem整个组件分为左右两部分,左边是内容区,右边是按钮操作区。现在问题是右边操作区按钮的OperateItem类型为arrow或者arrow+text时,在没有提供action的时候,会单独响应点击效果,预期不应该显示的;需要修改为在没有提供action的时候,右侧操作区不应该响应单独点击效果,而是整个组件响应按压效果。 680 681**变更影响** 682 683该变更为不兼容变更。 684 685| 变更前 | 变更后 | 686|---------|---------| 687| 右侧操作区OperateItem类型为arrow或者arrow+text时,没有提供action,右侧操作区单独响应了阴影效果。 | 右侧操作区OperateItem类型为arrow或者arrow+text时,没有提供action,整个组件响应了阴影效果。 | 688|  |  | 689 690**起始API Level** 691 69211 693 694**变更发生版本** 695 696从OpenHarmony SDK 5.0.0.32开始。 697 698**变更的接口/组件** 699 700 高级组件ComposeListItem组件 701 702**适配指导** 703 704默认行为变更,无需适配。