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|  |  | 128 129 130 131| 变更前 | 变更后 | 132| ---------------------------------------- | ---------------------------------------- | 133|  |  | 134 135 136 137| 变更前 | 变更后 | 138| ---------------------------------------- | ---------------------------------------- | 139|  |  | 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|  |  | 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