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| ![](figures/DatePickerDialogDivider_Before.jpg) | ![](figures/DatePickerDialogDivider_After.jpg) |
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| ![](figures/ListConstraintSize_Before.jpg)  |  ![](figures/ListConstraintSize_After.jpg)  |
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![变更前](figures/modalUIExtension_before.gif)
207
208
209**变更后**:
210
211图中的权限弹窗就是一个模态UIExtension,该窗口弹出后,通话子窗口被隐藏,退出后通话子窗口重新展示
212
213![变更后](figures/modalUIExtension_after.gif)
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![AlphabetIndexer_Before](figures/AlphabetIndexer_Before.png)
260
261API version 12及之后:autoCollapse属性默认值为true,当AlphabetIndexer组件高度不足时,会折叠显示。
262
263![AlphabetIndexer_After](figures/AlphabetIndexer_After.png)
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![AtomicServiceAppBar_Before](figures/AtomicServiceAppBar_Before.png)
297
298API version 12及以后:针对元服务,大部分弹框层级都在AppBar之下。AppBar按钮悬浮在蒙层之上,只点击一次即可拉起服务面板。
299
300![AtomicServiceAppBar_After](figures/AtomicServiceAppBar_After.png)
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|![caretsquare_before](figures/caretsquareradius_before.PNG) |![caretsquare_after](figures/caretsquareradius_after.PNG)  |
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|![selectionmenu_before](figures/selectionmenumoreclicked_before.png) |![selectionmenu_after](figures/selectionmenumoreclecked_after.png)  |
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| ![SvgContentBefore](figures/SvgContentBefore.png) | ![SvgContentAfter](figures/SvgContentAfter.png) |
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| ![Popup_Before](figures/Popup_Before.jpeg) | ![Popup_After](figures/Popup_After.jpeg) |
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| ![Toast_Before](figures/Toast_Before.PNG) | ![Toast_After](figures/Toast_After.PNG) |
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| ![ComposeListItem_before](figures/ComposeListItem_Before.png) | ![ComposeListItem_after](figures/ComposeListItem_After.png) |
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默认行为变更,无需适配。