1e41f4b71Sopenharmony_ci# Web Subsystem ChangeLog
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThis document describes the web API changes in OpenHarmony 3.2.9.1 SP8 when compared with OpenHarmony 3.2.8.1.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci## cl.web.1 Deletion of Unnecessary Error Codes
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ciAPIs in the webviewController component of the web subsystem are changed:
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci - Deleted **@throws { BusinessError } 17100007 - Invalid back or forward operation** from the **forward**, **backward**, and **backOrForward** APIs.
10e41f4b71Sopenharmony_ci - Deleted **@throws { BusinessError } 17100009 - Cannot zoom in or zoom out** from the **zoom**, **zoomIn**, and **zoomOut** APIs.
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ciYou need to adapt your application based on the following information.
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci**Change Impacts**
15e41f4b71Sopenharmony_ci
16e41f4b71Sopenharmony_ciReleased JS APIs are affected. The application can be properly compiled in the SDK environment of the new version, without any adaptation.
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci**Key API/Component Changes**
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ciInvolved APIs: **forward**, **backward**, **backOrForward**, **zoom**, **zoomIn**, and **zoomOut**
21e41f4b71Sopenharmony_ciInvolved component: web
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci**Adaptation Guide**
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ciNo adaptation is required.        
26e41f4b71Sopenharmony_ci## cl.web.2 setWebController Input Parameter Changes
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ciSome released web controllers are migrated to the webviewController, and the original webController is deprecated. The following changes are made in API version 9 and later:
29e41f4b71Sopenharmony_ciThe input parameter of **setWebController** is replaced by the new **webviewController**.
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**Change Impacts**
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ciInput parameters of JS APIs need to be adapted for applications developed based on earlier versions. Otherwise, relevant functions will be affected.
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci**Key API/Component Changes**
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci- Involved API:
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci  setWebController(controller: WebviewController): void;
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci- Before change:
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci```js
44e41f4b71Sopenharmony_cisetWebController(controller: WebController): void;
45e41f4b71Sopenharmony_ci```
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci- After change:
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci```js
50e41f4b71Sopenharmony_cisetWebController(controller: WebviewController): void;
51e41f4b71Sopenharmony_ci```
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci**Adaptation Guide**
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ciThe sample code is as follows:
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ciBefore change:
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci```js
60e41f4b71Sopenharmony_ci// xxx.ets
61e41f4b71Sopenharmony_ci@Entry
62e41f4b71Sopenharmony_ci@Component
63e41f4b71Sopenharmony_cistruct WebComponent {
64e41f4b71Sopenharmony_ci  controller:WebController = new WebController()
65e41f4b71Sopenharmony_ci  build() {
66e41f4b71Sopenharmony_ci    Column() {
67e41f4b71Sopenharmony_ci      Web({ src:'www.example.com', controller: this.controller })
68e41f4b71Sopenharmony_ci      .multiWindowAccess(true)
69e41f4b71Sopenharmony_ci      .onWindowNew((event) => {
70e41f4b71Sopenharmony_ci        console.log("onWindowNew...")
71e41f4b71Sopenharmony_ci        var popController: WebController = new WebController()
72e41f4b71Sopenharmony_ci        event.handler.setWebController(popController)
73e41f4b71Sopenharmony_ci      })
74e41f4b71Sopenharmony_ci    }
75e41f4b71Sopenharmony_ci  }
76e41f4b71Sopenharmony_ci}
77e41f4b71Sopenharmony_ci```
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ciAfter change:
80e41f4b71Sopenharmony_ci```js
81e41f4b71Sopenharmony_ci// xxx.ets
82e41f4b71Sopenharmony_ci@Entry
83e41f4b71Sopenharmony_ci@Component
84e41f4b71Sopenharmony_cistruct WebComponent {
85e41f4b71Sopenharmony_ci  controller: web_webview.WebviewController = new web_webview.WebviewController()
86e41f4b71Sopenharmony_ci  build() {
87e41f4b71Sopenharmony_ci    Column() {
88e41f4b71Sopenharmony_ci      Web({ src:'www.example.com', controller: this.controller })
89e41f4b71Sopenharmony_ci      .multiWindowAccess(true)
90e41f4b71Sopenharmony_ci      .onWindowNew((event) => {
91e41f4b71Sopenharmony_ci        console.log("onWindowNew...")
92e41f4b71Sopenharmony_ci        var popController: web_webview.WebviewController = new web_webview.WebviewController()
93e41f4b71Sopenharmony_ci        event.handler.setWebController(popController)
94e41f4b71Sopenharmony_ci      })
95e41f4b71Sopenharmony_ci    }
96e41f4b71Sopenharmony_ci  }
97e41f4b71Sopenharmony_ci}
98e41f4b71Sopenharmony_ci```
99e41f4b71Sopenharmony_ci
100e41f4b71Sopenharmony_ci## cl.web.3 getUnfilterendLinkUrl API Name Change
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ciThe **getUnfilterendLinkUrl** API is misspelled and should be changed to **getUnfilteredLinkUrl**.
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci**Change Impacts**
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ciThe JS API name needs to be adapted for applications developed based on earlier versions. Otherwise, relevant functions will be affected.
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci**Key API/Component Changes**
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ci- Involved API:
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci  getUnfilteredLinkUrl(): string;
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ci- Before change:
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci```js
117e41f4b71Sopenharmony_cigetUnfilterendLinkUrl(): string;
118e41f4b71Sopenharmony_ci```
119e41f4b71Sopenharmony_ci
120e41f4b71Sopenharmony_ci- After change:
121e41f4b71Sopenharmony_ci
122e41f4b71Sopenharmony_ci```js
123e41f4b71Sopenharmony_cigetUnfilteredLinkUrl(): string;
124e41f4b71Sopenharmony_ci```
125e41f4b71Sopenharmony_ci
126e41f4b71Sopenharmony_ci**Adaptation Guide**
127e41f4b71Sopenharmony_ci
128e41f4b71Sopenharmony_ciThe JS API name needs to be adapted for applications developed based on earlier versions. The new API name is used to replace the original one. Otherwise, relevant functions will be affected.
129