# Class (WebController, deprecated) 通过WebController可以控制Web组件各种行为。一个WebController对象只能控制一个Web组件,且必须在Web组件和WebController绑定后,才能调用WebController上的方法。 从API version 9开始不再维护,建议使用[WebviewController9+](./arkts-apis-webview-WebviewController.md)代替。 > **说明:** > > - 该组件首批接口从API version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 > > - 本Class首批接口从API version 8开始支持。 > > - 示例效果请以真机运行为准,当前DevEco Studio预览器不支持。 ## 创建对象 ```ts let webController: WebController = new WebController() ``` ## constructor(deprecated) constructor() WebController的构造函数。 > **说明:** > > 从API version 8开始支持,从API version 9开始废弃。并且不再提供新的接口作为替代。 **系统能力:** SystemCapability.Web.Webview.Core ## getCookieManager(deprecated) getCookieManager(): WebCookie 获取Web组件cookie管理对象。 从API version 9开始不再维护,建议使用[getCookie](./arkts-apis-webview-WebCookieManager.md#getcookiedeprecated)代替。 **系统能力:** SystemCapability.Web.Webview.Core **返回值:** | 类型 | 说明 | | --------- | ---------------------------------------- | | WebCookie | Web组件cookie管理对象,参考[WebCookie](./arkts-basic-components-web-WebCookie.md)定义。 | **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() build() { Column() { Button('getCookieManager') .onClick(() => { let cookieManager = this.controller.getCookieManager() }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## requestFocus(deprecated) requestFocus() 使当前web页面获取焦点。 从API version 9开始不再维护,建议使用[requestFocus9+](./arkts-apis-webview-WebviewController.md#requestfocus)代替。 **系统能力:** SystemCapability.Web.Webview.Core **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() build() { Column() { Button('requestFocus') .onClick(() => { this.controller.requestFocus() }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## accessBackward(deprecated) accessBackward(): boolean 当前页面是否可后退,即当前页面是否有返回历史记录。 从API version 9开始不再维护,建议使用[accessBackward9+](./arkts-apis-webview-WebviewController.md#accessbackward)代替。 **系统能力:** SystemCapability.Web.Webview.Core **返回值:** | 类型 | 说明 | | ------- | --------------------- | | boolean | 可以后退返回true,否则返回false。 | **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() build() { Column() { Button('accessBackward') .onClick(() => { let result = this.controller.accessBackward() console.info('result:' + result) }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## accessForward(deprecated) accessForward(): boolean 当前页面是否可前进,即当前页面是否有前进历史记录。 从API version 9开始不再维护,建议使用[accessForward9+](./arkts-apis-webview-WebviewController.md#accessforward)代替。 **系统能力:** SystemCapability.Web.Webview.Core **返回值:** | 类型 | 说明 | | ------- | --------------------- | | boolean | 返回true表示当前页面可以前进,返回false表示当前页面不可以前进。 | **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() build() { Column() { Button('accessForward') .onClick(() => { let result = this.controller.accessForward() console.info('result:' + result) }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## accessStep(deprecated) accessStep(step: number): boolean 当前页面是否可前进或者后退给定的step步。 从API version 9开始不再维护,建议使用[accessStep9+](./arkts-apis-webview-WebviewController.md#accessstep)代替。 **系统能力:** SystemCapability.Web.Webview.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---- | ------ | ---- | --------------------- | | step | number | 是 | 要跳转的步数,正数代表前进,负数代表后退。 | **返回值:** | 类型 | 说明 | | ------- | --------- | | boolean | 页面是否前进或后退 | **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() @State steps: number = 2 build() { Column() { Button('accessStep') .onClick(() => { let result = this.controller.accessStep(this.steps) console.info('result:' + result) }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## backward(deprecated) backward() 按照历史栈,后退一个页面。一般结合accessBackward一起使用。 从API version 9开始不再维护,建议使用[backward9+](./arkts-apis-webview-WebviewController.md#backward)代替。 **系统能力:** SystemCapability.Web.Webview.Core **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() build() { Column() { Button('backward') .onClick(() => { this.controller.backward() }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## forward(deprecated) forward() 按照历史栈,前进一个页面。一般结合accessForward一起使用。 从API version 9开始不再维护,建议使用[forward9+](./arkts-apis-webview-WebviewController.md#forward)代替。 **系统能力:** SystemCapability.Web.Webview.Core **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() build() { Column() { Button('forward') .onClick(() => { this.controller.forward() }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## deleteJavaScriptRegister(deprecated) deleteJavaScriptRegister(name: string) 删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。删除后立即生效,无须调用[refresh](#refreshdeprecated)接口。 从API version 9开始不再维护,建议使用[deleteJavaScriptRegister9+](./arkts-apis-webview-WebviewController.md#deletejavascriptregister)代替。 **系统能力:** SystemCapability.Web.Webview.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---- | ------ | ---- | ---------------------------------------- | | name | string | 是 | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 | **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() @State name: string = 'Object' build() { Column() { Button('deleteJavaScriptRegister') .onClick(() => { this.controller.deleteJavaScriptRegister(this.name) }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## getHitTest(deprecated) getHitTest(): HitTestType 获取当前被点击区域的元素类型。 从API version 9开始不再维护,建议使用[getHitTest9+](./arkts-apis-webview-WebviewController.md#gethittestdeprecated)代替。 **系统能力:** SystemCapability.Web.Webview.Core **返回值:** | 类型 | 说明 | | ------------------------------- | ----------- | | [HitTestType](./arkts-basic-components-web-e.md#hittesttype) | 被点击区域的元素类型。 | **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() build() { Column() { Button('getHitTest') .onClick(() => { let hitType = this.controller.getHitTest() console.info("hitType: " + hitType) }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## loadData(deprecated) loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string }) baseUrl为空时,通过”data“协议加载指定的一段字符串。 当baseUrl为”data“协议时,编码后的data字符串将被Web组件作为”data"协议加载。 当baseUrl为“http/https"协议时,编码后的data字符串将被Web组件以类似loadUrl的方式以非编码字符串处理。 从API version 9开始不再维护,建议使用[loadData9+](./arkts-apis-webview-WebviewController.md#loaddata)代替。 **系统能力:** SystemCapability.Web.Webview.Core **参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ------ | ---- | ---------------------------------------- | | data | string | 是 | 按照”Base64“或者”URL"编码后的一段字符串。 | | mimeType | string | 是 | 媒体类型(MIME)。 | | encoding | string | 是 | 编码类型,具体为“Base64"或者”URL编码。 | | baseUrl | string | 否 | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给`window.origin`。 | | historyUrl | string | 否 | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 | **示例:** ```ts // xxx.ets @Entry @Component struct WebComponent { controller: WebController = new WebController() build() { Column() { Button('loadData') .onClick(() => { this.controller.loadData({ data: "
Source:source", mimeType: "text/html", encoding: "UTF-8" }) }) Web({ src: 'www.example.com', controller: this.controller }) } } } ``` ## loadUrl(deprecated) loadUrl(options: { url: string | Resource, headers?: Array\