1# web子系统ChangeLog 2 3OpenHarmony 3.2.10.7 版本相较于OpenHarmony 之前的版本,web的API变更如下。 4 5## cl.web.1 HitTestTypeV9命名变更 6 7枚举类HitTestTypeV9由于命名规范问题,名称变更为WebHitTestType。 8 9**变更影响** 10 11枚举类HitTestTypeV9,以及使用HitTestTypeV9作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。 12 13**关键的接口/组件变更** 14 15- 涉及接口 16 17 enum HitTestTypeV9 18 19- 变更前: 20 21 ```ts 22 enum HitTestTypeV9 23 ``` 24 25- 变更后: 26 27 ```ts 28 enum WebHitTestType 29 ``` 30 31**适配指导** 32 33请使用WebHitTestType替换HitTestTypeV9。 34 35## cl.web.2 HeaderV9命名变更 36 37结构体HeaderV9由于命名规范问题,名称变更为WebHeader。 38 39**变更影响** 40 41结构体HeaderV9,以及使用HeaderV9作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。 42 43**关键的接口/组件变更** 44 45- 涉及接口 46 47 interface HeaderV9 48 49- 变更前: 50 51 ```ts 52 interface HeaderV9 53 ``` 54 55- 变更后: 56 57 ```ts 58 interface WebHeader 59 ``` 60 61**适配指导** 62 63请使用WebHeader替换HeaderV9。 64 65## cl.web.3 HitTestValue结构体成员类型变更 66 67结构体HitTestValue中的成员变量HitTestTypeV9由于命名规范问题,名称变更为WebHitTestType。 68 69**变更影响** 70 71结构体HitTestValue,以及使用HitTestValue作为参数或返回值的接口,在3.2.10.7版本及后续版本中无法继续正常使用。 72 73**关键的接口/组件变更** 74 75- 涉及接口 76 77 interface HitTestValue 78 79- 变更前: 80 81 ```ts 82 interface HitTestValue { 83 84 /** 85 * Get the hit test type. 86 * 87 * @since 9 88 */ 89 type: HitTestTypeV9; 90 91 /** 92 * Get the hit test extra data. 93 * 94 * @since 9 95 */ 96 extra: string; 97 } 98 ``` 99 100- 变更后: 101 102 ```ts 103 interface HitTestValue { 104 105 /** 106 * Get the hit test type. 107 * 108 * @since 9 109 */ 110 type: WebHitTestType; 111 112 /** 113 * Get the hit test extra data. 114 * 115 * @since 9 116 */ 117 extra: string; 118 } 119 ``` 120 121**适配指导** 122 123请使用WebHitTestType替换HitTestTypeV9。 124 125## cl.web.4 loadUrl参数类型变更 126 127loadUrl接口中的参数headers,由于其类型的命名规范问题,类型变更为WebHeader。 128 129**变更影响** 130 131loadUrl接口若使用了headers参数,则在3.2.10.7版本及后续版本中无法继续正常使用。 132 133**关键的接口/组件变更** 134 135- 涉及接口 136 137 loadUrl(url: string | Resource, headers?: Array<HeaderV9>): void 138 139- 变更前: 140 141 ```ts 142 loadUrl(url: string | Resource, headers?: Array<HeaderV9>): void 143 ``` 144 145- 变更后: 146 147 ```ts 148 loadUrl(url: string | Resource, headers?: Array<WebHeader>): void 149 ``` 150 151**适配指导** 152 153在loadUrl中设置headers参数时,请使用WebHeader类型替换HeaderV9类型。 154 155## cl.web.5 getHitTest返回值类型变更 156 157getHitTest接口中的返回值,由于其类型的命名规范问题,变更为WebHitTest。 158 159**变更影响** 160 161getHitTest接口,在3.2.10.7版本及后续版本中无法继续正常使用。 162 163**关键的接口/组件变更** 164 165- 涉及接口 166 167 getHitTest(): HitTestTypeV9 168 169- 变更前: 170 171 ```ts 172 getHitTest(): HitTestTypeV9 173 ``` 174 175- 变更后: 176 177 ```ts 178 getHitTest(): WebHitTestType 179 ``` 180 181**适配指导** 182 183在使用getHitTest接口的返回值时,请使用WebHitTestType类型替换HitTestTypeV9类型。 184 185## cl.web.6 WebMessagePort类迁移 186 187WebMessagePort类迁移至@ohos.web.webview.d.ts,并新增错误码抛出。 188 189**变更影响** 190 191基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 192 193**关键的接口/组件变更** 194 195- 涉及接口 196 197 postMessageEvent(message: WebMessageEvent): void; 198 onMessageEvent(callback: (result: string) => void): void; 199 200- 变更前: 201 202 ```ts 203 postMessageEvent(message: WebMessageEvent): void; 204 onMessageEvent(callback: (result: string) => void): void; 205 ``` 206 207- 变更后: 208 209 ```ts 210 postMessageEvent(message: WebMessage): void; 211 onMessageEvent(callback: (result: WebMessage) => void): void; 212 ``` 213 214**适配指导** 215 216原WebMessagePort类不需要import,现WebMessagePort类使用的是@ohos.web.webview,以下方式import: 217 218 ```ts 219 import web_webview from '@ohos.web.webview'; 220 ``` 221 222## cl.web.7 HitTestValue类迁移 223 224HitTestValue类迁移至@ohos.web.webview.d.ts,HitTestValue类变更为接口,getType,getExtra变更为属性。 225 226**变更影响** 227 228基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。 229 230**关键的接口/组件变更** 231 232- 涉及接口 233 234 getType(): HitTestType; 235 getExtra(): string; 236 237- 变更前: 238 239 ```ts 240 getType(): HitTestType; 241 getExtra(): string; 242 ``` 243 244- 变更后: 245 246 ```ts 247 type: WebHitTestType; 248 extra: string; 249 ``` 250 251**适配指导** 252 253原HitTestValue类不需要import,现HitTestValue类使用的是@ohos.web.webview,以下方式import: 254 255 ```ts 256 import web_webview from '@ohos.web.webview'; 257 ``` 258 259## cl.web.8 WebCookie类下api9接口迁移 260 261WebCookie类下api9接口迁移,WebCookie类下api9接口迁移到web.webview.webview.WebCookieManager。 262并新增接口错误码抛出。 263 264**变更影响** 265 266基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 267该类方法变为静态方法。 268 269**关键的接口/组件变更** 270 271- 涉及接口 272 273 isCookieAllowed(): boolean; 274 isThirdPartyCookieAllowed(): boolean; 275 putAcceptCookieEnabled(accept: boolean): void; 276 putAcceptThirdPartyCookieEnabled(accept: boolean): void; 277 setCookie(url: string, value: string): boolean; 278 saveCookieSync(): boolean; 279 getCookie(url: string): string; 280 existCookie(): boolean; 281 deleteEntireCookie(): void; 282 deleteSessionCookie(): void; 283 284- 变更前: 285 286 ```ts 287 isCookieAllowed(): boolean; 288 isThirdPartyCookieAllowed(): boolean; 289 putAcceptCookieEnabled(accept: boolean): void; 290 putAcceptThirdPartyCookieEnabled(accept: boolean): void; 291 setCookie(url: string, value: string): boolean; 292 saveCookieSync(): boolean; 293 getCookie(url: string): string; 294 existCookie(): boolean; 295 deleteEntireCookie(): void; 296 deleteSessionCookie(): void; 297 ``` 298 299- 变更后: 300 301 ```ts 302 static isCookieAllowed(): boolean; 303 static isThirdPartyCookieAllowed(): boolean; 304 static putAcceptCookieEnabled(accept: boolean): void; 305 static putAcceptThirdPartyCookieEnabled(accept: boolean): void; 306 static setCookie(url: string, value: string): void; 307 static saveCookieAsync(): Promise<void>; 308 static saveCookieAsync(callback: AsyncCallback<void>): void; 309 static getCookie(url: string): string; 310 static existCookie(): boolean; 311 static deleteEntireCookie(): void; 312 static deleteSessionCookie(): void; 313 ``` 314 315**适配指导** 316 317原WebCookie类不需要import,现WebCookieManager使用的是@ohos.web.webview,以下方式import: 318 319 ```ts 320 import web_webview from '@ohos.web.webview'; 321 ``` 322 323## cl.web.9 WebController类下api9接口迁移 324 325WebController类下api9接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。 326 327**变更影响** 328 329基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。 330getDefaultUserAgent接口更名为getUserAgent。 331 332**关键的接口/组件变更** 333 334- 涉及接口 335 336 zoomIn(): boolean; 337 zoomOut(): boolean; 338 createWebMessagePorts(): Array<WebMessagePort>; 339 postMessage(options: { message: WebMessageEvent, uri: string}): void; 340 getHitTestValue(): HitTestValue; 341 getWebId(): number; 342 getDefaultUserAgent(): string; 343 getTitle(): string; 344 getPageHeight(): number; 345 backOrForward(step: number): void; 346 searchAllAsync(searchString: string): void; 347 clearMatches(): void; 348 searchNext(forward: boolean): void; 349 clearSslCache(): void; 350 clearClientAuthenticationCache(): void; 351 getUrl(): string; 352 353- 变更前: 354 355 ```ts 356 zoomIn(): boolean; 357 zoomOut(): boolean; 358 createWebMessagePorts(): Array<WebMessagePort>; 359 postMessage(options: { message: WebMessageEvent, uri: string}): void; 360 getHitTestValue(): HitTestValue; 361 getWebId(): number; 362 getDefaultUserAgent(): string; 363 getTitle(): string; 364 getPageHeight(): number; 365 backOrForward(step: number): void; 366 searchAllAsync(searchString: string): void; 367 clearMatches(): void; 368 searchNext(forward: boolean): void; 369 clearSslCache(): void; 370 clearClientAuthenticationCache(): void; 371 getUrl(): string; 372 ``` 373 374- 变更后: 375 376 ```ts 377 zoomIn(): void; 378 zoomOut(): void; 379 createWebMessagePorts(): Array<WebMessagePort>; 380 postMessage(name: string, ports: Array<WebMessagePort>, uri: string): void; 381 getHitTestValue(): HitTestValue; 382 getWebId(): number; 383 getUserAgent(): string; 384 getTitle(): string; 385 getPageHeight(): number; 386 backOrForward(step: number): void; 387 searchAllAsync(searchString: string): void; 388 clearMatches(): void; 389 searchNext(forward: boolean): void; 390 clearSslCache(): void; 391 clearClientAuthenticationCache(): void; 392 getUrl(): string; 393 ``` 394 395**适配指导** 396 397原WebController类不需要import,现WebviewController类使用的是@ohos.web.webview,以下方式import: 398 399 ```ts 400 import web_webview from '@ohos.web.webview'; 401 ``` 402 403## cl.web.10 WebAsyncController类迁移 404 405WebAsyncController类下接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。 406 407**变更影响** 408 409基于此前版本开发的应用,需注意错误码处理的使用。 410 411**关键的接口/组件变更** 412 413- 涉及接口 414 415 storeWebArchive(baseName: string, autoName: boolean): Promise<string>; 416 storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback<string>): void; 417 418- 变更前: 419 420 ```ts 421 storeWebArchive(baseName: string, autoName: boolean): Promise<string>; 422 storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback<string>): void; 423 ``` 424 425- 变更后: 426 427 ```ts 428 storeWebArchive(baseName: string, autoName: boolean): Promise<string>; 429 storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback<string>): void; 430 ``` 431 432**适配指导** 433 434使用示例: 435 436 ```ts 437 // xxx.ets 438 import web_webview from '@ohos.web.webview' 439 440 @Entry 441 @Component 442 struct WebComponent { 443 controller: web_webview.WebviewController = new web_webview.WebviewController(); 444 445 build() { 446 Column() { 447 Button('saveWebArchive') 448 .onClick(() => { 449 try { 450 this.controller.storeWebArchive("/data/storage/el2/base/", true, (error, filename) => { 451 if (error) { 452 console.info(`save web archive error: ` + JSON.stringify(error)) 453 return; 454 } 455 if (filename != null) { 456 console.info(`save web archive success: ${filename}`) 457 } 458 }); 459 } catch (error) { 460 console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); 461 } 462 }) 463 Web({ src: 'www.example.com', controller: this.controller }) 464 } 465 } 466 } 467 ```