diff --git a/zh-cn/application-dev/reference/apis-arkweb/arkts-apis-webview-WebviewController.md b/zh-cn/application-dev/reference/apis-arkweb/arkts-apis-webview-WebviewController.md index d6915f3c97baccb6fd149c04b82681c4db1a9a6c..f5855802f76a624ba910ad24ff00e0a23dcfc91b 100644 --- a/zh-cn/application-dev/reference/apis-arkweb/arkts-apis-webview-WebviewController.md +++ b/zh-cn/application-dev/reference/apis-arkweb/arkts-apis-webview-WebviewController.md @@ -9298,3 +9298,93 @@ struct WebComponent { } } ``` + +## setErrorPageEnabled20+ + +setErrorPageEnabled(enable: boolean): void + +设置是否启用默认错误页。当网页加载发生错误时,将触发[onOverrideErrorPage](./arkts-basic-components-web-events.md#onoverrideerrorpage20)回调。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------- | ---- | -------------------------------------- | +| enable | boolean | 是 | 表示是否启用默认错误页。true表示启用,false表示不启用。 | + +**错误码:** + +以下错误码的详细介绍请参见[Webview错误码](errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | + +**示例:** + +```ts +// xxx.ets +import { webview } from '@kit.ArkWeb'; +@Entry +@Component +struct WebComponent { + controller: webview.WebviewController = new webview.WebviewController(); + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .onControllerAttached(() => { + this.controller.setErrorPageEnabled(true); + if (!this.controller.getErrorPageEnabled()) { + this.controller.setErrorPageEnabled(true); + } + }) + } + } +} +``` + +## getErrorPageEnabled20+ + +getErrorPageEnabled(): boolean + +查询是否启用了默认错误页功能。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| -------------------- | ------------------------- | +| boolean | 返回是否启用默认错误页功能。
true:已启用;false:未启用。 | + +**错误码:** + +以下错误码的详细介绍请参见[Webview错误码](errorcode-webview.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | + +**示例:** + +```ts +// xxx.ets +import { webview } from '@kit.ArkWeb'; +@Entry +@Component +struct WebComponent { + controller: webview.WebviewController = new webview.WebviewController(); + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .onControllerAttached(() => { + this.controller.setErrorPageEnabled(true); + if (!this.controller.getErrorPageEnabled()) { + this.controller.setErrorPageEnabled(true); + } + }) + } + } +} +``` diff --git a/zh-cn/application-dev/reference/apis-arkweb/arkts-basic-components-web-events.md b/zh-cn/application-dev/reference/apis-arkweb/arkts-basic-components-web-events.md index 16c4c1f364c8c1bac01d92f0ef3e57785bc6752b..395eecbcb5cec73a6eac8a42b9f20e20c97dbe5f 100644 --- a/zh-cn/application-dev/reference/apis-arkweb/arkts-basic-components-web-events.md +++ b/zh-cn/application-dev/reference/apis-arkweb/arkts-basic-components-web-events.md @@ -4279,4 +4279,48 @@ onNativeEmbedMouseEvent(callback: (event: NativeEmbedMouseInfo) => void) + ``` + +## onOverrideErrorPage20+ + +onOverrideErrorPage(callback: OnOverrideErrorPageCallback) + +网页加载遇到错误时触发,只有主资源出错才会回调该接口。 +此外,该功能需通过调用[setErrorPageEnabled](./arkts-apis-webview-WebviewController.md#seterrorpageenabled20)接口启用默认错误页后,才会生效。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------- | ---------------------------------------- | ---- | --------------- | +| callback | [OnOverrideErrorPageCallback](./arkts-basic-components-web-t.md#onoverrideerrorpagecallback20) | 是 | 网页加载遇到错误时触发。 | + +**示例:** + + ```ts +// xxx.ets +import { webview } from '@kit.ArkWeb'; +@Entry +@Component +struct WebComponent { + controller: webview.WebviewController = new webview.WebviewController(); + build() { + Column() { + Web({ src: "www.error-test.com", controller: this.controller }) + .onControllerAttached(() => { + this.controller.setErrorPageEnabled(true); + if (!this.controller.getErrorPageEnabled()) { + this.controller.setErrorPageEnabled(true); + } + }) + .onOverrideErrorPage(event => { + let htmlStr = "

error occur : "; + htmlStr += event.error.getErrorCode(); + htmlStr += "

"; + return htmlStr; + }) + } + } +} ``` \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis-arkweb/arkts-basic-components-web-t.md b/zh-cn/application-dev/reference/apis-arkweb/arkts-basic-components-web-t.md index 36643f51ec675ebb7f5602cefc743f0e2bb0fc69..28766837da2be1d9f46dfc5ad913948c403d0eb2 100644 --- a/zh-cn/application-dev/reference/apis-arkweb/arkts-basic-components-web-t.md +++ b/zh-cn/application-dev/reference/apis-arkweb/arkts-basic-components-web-t.md @@ -228,3 +228,24 @@ type WebKeyboardCallback = (keyboardCallbackInfo: WebKeyboardCallbackInfo) => We | 类型 | 说明 | | ------------------ | ------------------------------------------------------------ | | [WebKeyboardOptions](./arkts-basic-components-web-i.md#webkeyboardoptions12) | 回调函数通过返回[WebKeyboardOptions](./arkts-basic-components-web-i.md#webkeyboardoptions12)来决定ArkWeb内核拉起不同类型的软键盘。 | + +## OnOverrideErrorPageCallback20+ + +type OnOverrideErrorPageCallback= (webResourceRequest: WebResourceRequest, error: WebResourceError) => string + +onOverrideErrorPage的回调函数,网页加载失败时触发。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 名称 | 类型 | 必填 | 说明 | +| -------------- | ---- | ---- | ---------------------------------------- | +| webResourceRequest | [WebResourceRequest](./arkts-basic-components-web-WebResourceRequest.md) | 是 | 网页请求的封装信息。 | +| error | [WebResourceError](./arkts-basic-components-web-WebResourceError.md) | 是 | 加载失败的错误信息。 | + +**返回值:** + +| 类型 | 说明 | +| ------- | ------------------------ | +| string | 返回以Base64编码的HTML文本内容。 |