1# ArkUI子系统Changelog
2
3## cl.arkui.1 component3d获取资源的路径格式由Resource类型不兼容变更到ResourceStr类型
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11扩展component3D组件获取系统路径资源能力,目前只支持从应用沙箱路径获取资源。
12
13**变更影响**
14
15该变更为不兼容变更。
16
17变更前:component3D资源获取通过Resource方式,只支持从rawfile路径读取。
18
19变更后:component3D资源获取修改为通过ResourceStr方式,既支持从rawfile路径读取也支持从磁盘路径读取。
20
21不兼容场景:
22当用户存在指定数据类型赋值场景时,会出现不兼容情况; 例如:
23```ts
24const params1: SceneResourceParameters = { name: "name1", uri: $rawfile("default_path") }
25const test_uri: Resource | undefined = params1.uri;
26```
27
28**起始API Level**
29
30API 12
31
32**变更发生版本**
33
34从OpenHarmony SDK 5.0.0.43开始
35
36**变更的接口/组件**
37
381、 Component3D初始化资源接口SceneOptions中sence变量数据类型由Resource变更为ResourceStr;
39
402、 Scene中uri变量数据类型由Resource变更为ResourceStr;
41
423、 SceneResources中uri变量数据类型由Resource变更为ResourceStr;
43
444、 component3d中environment、customRender、shader和shaderImageTexture接口的入参由Resource类型变更为ResourceStr类型;
45
465、 Scene中load接口的入参由Resource类型变更为ResourceStr类型;
47
48**适配指导**
49
50```ts
51import { Scene, Image, SceneResourceParameters, SceneResourceFactory } from '@kit.ArkGraphics3D'
52
53const params1: SceneResourceParameters = { name: "name1", uri: $rawfile("default_path") }
54// 变更前
55// const test_uri: Resource | undefined = params1.uri;
56// 变更后适配为
57const test_uri: ResourceStr | undefined = params1.uri;
58
59@Entry
60@Component
61struct node_geometry {
62    scene: Scene | null = null;
63    @State sceneOpt: SceneOptions | null = null;
64    envImg: Image | null = null;
65
66    onPageShow(): void {
67        this.Init();
68    }
69
70    onPageHide(): void {
71        if (this.scene) {
72            this.scene.destroy();
73        }
74    }
75
76    Init(): void {
77        if (this.scene == null) {
78            Scene.load($rawfile("default_path"))
79            .then(async (result: Scene) => {
80                this.scene = result;
81                this.sceneOpt = { scene: this.scene, modelType: ModelType.SURFACE } as SceneOptions;
82                let rf: SceneResourceFactory = this.scene.getResourceFactory();
83
84                this.envImg = await rf.createImage({ name: "image1", uri: test_uri });
85            });
86        }
87    }
88
89    build() {
90        Column() {
91            Component3D(this.sceneOpt)
92                .renderWidth('100%')
93                .renderHeight('100%')
94                .width('100%')
95                .height('100%')
96        }
97    }
98}
99```
100
101## cl.arkui.2 showToast接口TOP_MOST模式行为变更
102
103**访问级别**
104
105公开接口
106
107**变更原因**
108
109toast层级过高,会挡住权限弹窗等敏感内容,存在安全隐患。
110
111**变更影响**
112
113该变更为不兼容变更。
114
115API version 12及以后,TOP_MOST模式弹出的Toast的层级发生改变,即:
116
117变更前:Toast层级较高,可以悬浮显示在输入法、系统授权弹窗之上。输入法弹出后不避让,保持在原来的位置。
118
119变更后:
120
1211. Toast不能悬浮显示在输入法之上,如果Toast与输入法有重叠,则将Toast避让到输入法上方固定80vp处。
1222. Toast在系统敏感内容显示时不显示或被覆盖。
1233. 在画中画窗口和悬浮窗中不支持创建TOP_MOST模式的Toast。
124
125| 变更前                                   | 变更后                                   |
126| ---------------------------------------- | ---------------------------------------- |
127| ![zh-cn_image_alert](figures/41.1.6.png) | ![zh-cn_image_alert](figures/41.1.7.png) |
128
129
130
131| 变更前                                   | 变更后                                   |
132| ---------------------------------------- | ---------------------------------------- |
133| ![zh-cn_image_alert](figures/41.1.8.png) | ![zh-cn_image_alert](figures/41.1.9.png) |
134
135
136
137| 变更前                                   | 变更后                                   |
138| ---------------------------------------- | ---------------------------------------- |
139| ![zh-cn_image_alert](figures/41.1.10.png) | ![zh-cn_image_alert](figures/41.1.11.png) |
140
141**起始API Level**
142
14311
144
145**变更发生版本**
146
147从OpenHarmony SDK 5.0.0.43 版本开始。
148
149**变更的接口/组件**
150
151showToast接口
152
153**适配指导**
154
1551. 对于输入法的场景,开发者可以设置高度将Toast放到合适的位置,主动避开输入法。
1562. 对于敏感内容的场景,开发者无法适配。
1573. 对于画中画和悬浮窗的场景,开发者可以改为使用DEFAULT模式。
158
159## cl.arkui.3 在2in1设备上bindsheet视觉效果变更
160
161**访问级别**
162
163公开接口
164
165**变更原因**
166
1672in1设备上,半模态样式优化。
168
169**变更影响**
170
171该变更为兼容性变更。
172
173| 变更前 | 变更后 |
174|------ |--------|
175|默认圆角为32vp|2in1设备中,默认圆角为16vp|
176|关闭按钮默认有底板|2in1设备中,关闭按钮默认没有底板|
177|默认没有阴影|2in1设备中,默认有阴影|
178|默认没有内外描边|2in1设备中,默认有内外描边|
179
180**起始API Level**
181
18211
183
184**变更发生版本**
185
186从OpenHarmony 5.0.0.43 版本开始。
187
188**变更的接口/组件**
189
190bindSheet属性。
191
192**适配指导**
193
194默认行为变更,无需适配。
195
196## cl.arkui.4 修复Popup高级组件宽度限制计算错误的问题
197
198**访问级别**
199
200公开接口
201
202**变更原因**
203
204目前宽度最大限制不符合ux规范,在手机屏幕场景下,会出现Popup高级组件无法撑满屏幕的情况,影响体验。
205
206**变更影响**
207
208该变更为不兼容变更。
209
210变更前:屏幕宽度小于400vp时,Popup高级组件最大宽度为当前屏幕宽度-80vp。
211
212变更后:屏幕宽度小于400vp时,Popup高级组件最大宽度为当前屏幕宽度。
213
214| 变更前                                   | 变更后                                   |
215| ---------------------------------------- | ---------------------------------------- |
216| ![popup_before](figures/popup_before.png) | ![popup_after](figures/popup_after.png) |
217
218**起始API Level**
219
22011
221
222**变更发生版本**
223
224从OpenHarmony 5.0.0.43 版本开始。
225
226**变更的接口/组件**
227
228Popup高级组件。
229
230**适配指导**
231
232如果用户原来没有自定义Popup高级组件的宽度,且内容宽度大于320vp,变更前按320vp显示,变更后,Popup高级组件会变宽;如不符合预期,可以手动修改为想要的宽度。
233
234## cl.arkui.5 Navigation嵌套使用时的生命周期行为优化
235
236**访问级别**
237
238公开接口
239
240**变更原因**
241
242在嵌套使用Navigation的场景下,如果内层Navigation处于不可见的状态,不应该触发对应的onShown生命周期。
243
244**变更影响**
245
246该变更为不兼容变更。
247
248变更前:在嵌套Navigation的场景下如果内层的Navigation不可见,此时如果应用对不可见的Navigation进行栈操作,会触发对应的onShown生命周期。
249
250变更后:在嵌套Navigation的场景下如果内层的Navigation不可见,此时如果应用对不可见的Navigation进行栈操作,不会触发对应的onShown生命周期。
251
252**起始API Level**
253
25412
255
256**变更发生版本**
257
258从OpenHarmony 5.0.0.43 版本开始。
259
260**变更的接口/组件**
261
262onShown生命周期。
263
264**适配指导**
265
266默认行为变更,无需适配,但应注意变更后的行为是否对整体应用逻辑产生影响。
267