• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.WebCookieManager262并新增接口错误码抛出。
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  ```