From 4ed162eb64bbb92be07569ade3f4231b3d3846db Mon Sep 17 00:00:00 2001 From: yuhaoge Date: Wed, 19 Oct 2022 09:50:19 +0800 Subject: [PATCH] Add WebviewController Signed-off-by: yuhaoge --- .../reference/apis/js-apis-webview.md | 380 +++++++++++++----- .../arkui-ts/ts-basic-components-web.md | 56 ++- 2 files changed, 323 insertions(+), 113 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-webview.md b/zh-cn/application-dev/reference/apis/js-apis-webview.md index 8ec9190d5a..fdaaf855c5 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-webview.md +++ b/zh-cn/application-dev/reference/apis/js-apis-webview.md @@ -10,12 +10,14 @@ > > - 示例效果请以真机运行为准,当前IDE预览器不支持。 +## 需要权限 +访问在线网页时需添加网络权限:ohos.permission.INTERNET,具体申请方式请参考[权限申请声明](../../security/accesstoken-guidelines.md)。 + ## 导入模块 ```ts import web_webview from '@ohos.web.webview'; ``` - ## WebMessagePort 通过WebMessagePort可以进行消息的发送以及接收。 @@ -26,7 +28,8 @@ close(): void 关闭该信息端口。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **示例:** @@ -58,7 +61,8 @@ postMessageEvent(message: string): void 发送消息。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -110,7 +114,8 @@ onMessageEvent(callback: (result: string) => void): void 注册回调函数,接收HTML5侧发送过来的消息。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -173,7 +178,8 @@ loadUrl(url: string | Resource, headers?: Array\): void 加载指定的URL。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -225,7 +231,8 @@ loadData(data: string, mimeType: string, encoding: string, baseUrl?: string, his 加载指定的数据。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -248,7 +255,7 @@ loadData(data: string, mimeType: string, encoding: string, baseUrl?: string, his **示例:** - ```ts +```ts // xxx.ets import web_webview from '@ohos.web.webview' @@ -275,7 +282,7 @@ struct WebComponent { } } } - ``` +``` ### accessforward @@ -283,7 +290,8 @@ accessForward(): boolean 当前页面是否可前进,即当前页面是否有前进历史记录。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -301,7 +309,7 @@ accessForward(): boolean **示例:** - ```ts +```ts // xxx.ets import web_webview from '@ohos.web.webview' @@ -325,7 +333,52 @@ struct WebComponent { } } } - ``` +``` + +### forward + +forward(): void + +按照历史栈,前进一个页面。一般结合accessForward一起使用。 + +**系统能力:** +SystemCapability.Web.Webview.Core + +**错误码**: + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | +| 17100007 | Invalid back or forward operation. | + +**示例:** + +```ts +// xxx.ets +import web_webview from '@ohos.web.webview' + +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + + build() { + Column() { + Button('forward') + .onClick(() => { + try { + this.controller.forward(); + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` ### accessBackward @@ -333,9 +386,8 @@ accessBackward(): boolean 当前页面是否可后退,即当前页面是否有返回历史记录。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -379,15 +431,59 @@ struct WebComponent { } ``` +### backward + +backward(): void + +按照历史栈,后退一个页面。一般结合accessBackward一起使用。 + +**系统能力:** +SystemCapability.Web.Webview.Core + +**错误码**: + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | +| 17100007 | Invalid back or forward operation. | + +**示例:** + +```ts +// xxx.ets +import web_webview from '@ohos.web.webview' + +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + + build() { + Column() { + Button('backward') + .onClick(() => { + try { + this.controller.backward(); + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + ### onActive onActive(): void 调用此接口通知Web组件进入前台激活状态。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **错误码:** @@ -430,9 +526,8 @@ onInactive(): void 调用此接口通知Web组件进入未激活状态。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **错误码:** @@ -470,13 +565,12 @@ struct WebComponent { ``` ### refresh -refresh() +refresh(): void 调用此接口通知Web组件刷新网页。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **错误码:** @@ -519,9 +613,8 @@ accessStep(step: number): boolean 当前页面是否可前进或者后退给定的step步。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -578,9 +671,8 @@ clearHistory(): void 删除所有前进后退记录。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **错误码:** @@ -623,9 +715,8 @@ getHitTest(): HitTestTypeV9 获取当前被点击区域的元素类型。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -671,13 +762,12 @@ struct WebComponent { ### registerJavaScriptProxy -registerJavaScriptProxy(object: object, name: string, methodList: Array\) +registerJavaScriptProxy(object: object, name: string, methodList: Array\): void 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。注册后,须调用[refresh](#refresh)接口生效。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -737,9 +827,8 @@ runJavaScript(script: string, callback : AsyncCallback\): void 异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -802,9 +891,8 @@ runJavaScript(script: string): Promise\ 异步执行JavaScript脚本,并通过Promise方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -864,13 +952,12 @@ struct WebComponent { ### deleteJavaScriptRegister -deleteJavaScriptRegister(name: string) +deleteJavaScriptRegister(name: string): void 删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。删除后立即生效,无须调用[refresh](#refresh)接口。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -921,9 +1008,8 @@ zoom(factor: number): void 调整当前网页的缩放比例。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -975,9 +1061,8 @@ searchAllAsync(searchString: string): void 异步查找网页中所有匹配关键字'searchString'的内容并高亮,结果通过[onSearchResultReceive](../arkui-ts/ts-basic-components-web.md#onsearchresultreceive9)异步返回。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -1031,9 +1116,8 @@ clearMatches(): void 清除所有通过[searchAllAsync](#searchallasync)匹配到的高亮字符查找结果。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **错误码:** @@ -1076,9 +1160,8 @@ searchNext(forward: boolean): void 滚动到下一个匹配的查找结果并高亮。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -1127,9 +1210,8 @@ clearSslCache(): void 清除Web组件记录的SSL证书错误事件对应的用户操作行为。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **错误码:** @@ -1172,9 +1254,8 @@ clearClientAuthenticationCache(): void 清除Web组件记录的客户端证书请求事件对应的用户操作行为。 -**需要权限:** - -ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **错误码:** @@ -1217,7 +1298,8 @@ struct WebComponent { 创建Web信息端口。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -1268,7 +1350,8 @@ postMessage(name: string, ports: Array\, uri: string): void 发送Web信息端口到HTML5。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -1357,10 +1440,13 @@ function PostWebMsg(data) { ### requestFocus -requestFocus():void +requestFocus(): void 使当前web页面获取焦点。 +**系统能力:** +SystemCapability.Web.Webview.Core + **错误码**: 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) @@ -1402,6 +1488,9 @@ zoomIn(): void 调用此接口将当前网页进行放大,比例为20%。 +**系统能力:** +SystemCapability.Web.Webview.Core + **错误码**: 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) @@ -1445,6 +1534,9 @@ zoomOut(): void 调用此接口将当前网页进行缩小,比例为20%。 +**系统能力:** +SystemCapability.Web.Webview.Core + **错误码**: 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) @@ -1488,6 +1580,9 @@ getHitTestValue(): HitTestValue 获取当前被点击区域的元素信息。 +**系统能力:** +SystemCapability.Web.Webview.Core + **返回值:** | 类型 | 说明 | @@ -1537,6 +1632,9 @@ getWebId(): number 获取当前Web组件的索引值,用于多个Web组件的管理。 +**系统能力:** +SystemCapability.Web.Webview.Core + **返回值:** | 类型 | 说明 | @@ -1585,6 +1683,9 @@ getUserAgent(): string 获取当前默认用户代理。 +**系统能力:** +SystemCapability.Web.Webview.Core + **返回值:** | 类型 | 说明 | @@ -1633,6 +1734,9 @@ getTitle(): string 获取文件选择器标题。 +**系统能力:** +SystemCapability.Web.Webview.Core + **返回值:** | 类型 | 说明 | @@ -1681,6 +1785,9 @@ getPageHeight(): number 获取当前网页的页面高度。 +**系统能力:** +SystemCapability.Web.Webview.Core + **返回值:** | 类型 | 说明 | @@ -1729,6 +1836,9 @@ storeWebArchive(baseName: string, autoName: boolean, callback: AsyncCallback\ 以Promise方式异步保存当前页面。 +**系统能力:** +SystemCapability.Web.Webview.Core + **参数:** | 参数名 | 参数类型 | 必填 | 说明 | @@ -1850,6 +1963,9 @@ getUrl(): string 获取当前页面的url地址。 +**系统能力:** +SystemCapability.Web.Webview.Core + **返回值:** | 类型 | 说明 | @@ -1894,10 +2010,13 @@ struct WebComponent { ### stop -stop():void +stop(): void 停止页面加载。 +**系统能力:** +SystemCapability.Web.Webview.Core + **错误码**: 以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) @@ -1939,6 +2058,9 @@ backOrForward(step: number): void 按照历史栈,前进或者后退指定步长的页面,当历史栈中不存在对应步长的页面时,不会进行页面跳转。 +**系统能力:** +SystemCapability.Web.Webview.Core + **参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | @@ -1992,7 +2114,8 @@ static getCookie(url: string): string 获取指定url对应cookie的值。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2047,7 +2170,8 @@ static setCookie(url: string, value: string): void 为指定url设置单个cookie的值。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2100,17 +2224,18 @@ struct WebComponent { ### saveCookieAsync -static saveCookieAsync(callback: AsyncCallback\): void +static saveCookieAsync(callback: AsyncCallback\): void 将当前存在内存中的cookie异步保存到磁盘中。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** | 参数名 | 类型 | 必填 | 默认值 | 说明 | | -------- | ---------------------- | ---- | ------ | :------------------------------------------------- | -| callback | AsyncCallback\ | 是 | - | 返回cookie是否成功保存的布尔值作为回调函数的入参。 | +| callback | AsyncCallback\ | 是 | - | 返回cookie是否成功保存的布尔值作为回调函数的入参。 | **示例:** @@ -2129,9 +2254,11 @@ struct WebComponent { Button('saveCookieAsync') .onClick(() => { try { - web_webview.WebCookieManager.saveCookieAsync(function (result) { - console.log("result: " + result); - }); + web_webview.WebCookieManager.saveCookieAsync((error) => { + if (error) { + console.log("error: " + error); + } + }) } catch (error) { console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); } @@ -2144,17 +2271,18 @@ struct WebComponent { ### saveCookieAsync -static saveCookieAsync(): Promise\ +static saveCookieAsync(): Promise\ 将当前存在内存中的cookie以Promise方法异步保存到磁盘中。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** | 类型 | 说明 | | ---------------- | ----------------------------------------- | -| Promise\ | Promise实例,用于获取cookie是否成功保存。 | +| Promise\ | Promise实例,用于获取cookie是否成功保存。 | **示例:** @@ -2173,10 +2301,10 @@ struct WebComponent { .onClick(() => { try { web_webview.WebCookieManager.saveCookieAsync() - .then(function (result) { - console.log("result: " + result); + .then(() => { + console.log("saveCookieAsyncCallback success!"); }) - .catch(function (error) { + .catch((error) => { console.error("error: " + error); }); } catch (error) { @@ -2195,7 +2323,8 @@ static putAcceptCookieEnabled(accept: boolean): void 设置WebCookieManager实例是否拥有发送和接收cookie的权限。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2236,7 +2365,8 @@ static isCookieAllowed(): boolean 获取WebCookieManager实例是否拥有发送和接收cookie的权限。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -2274,7 +2404,8 @@ static putAcceptThirdPartyCookieEnabled(accept: boolean): void 设置WebCookieManager实例是否拥有发送和接收第三方cookie的权限。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2315,7 +2446,8 @@ static isThirdPartyCookieAllowed(): boolean 获取WebCookieManager实例是否拥有发送和接收第三方cookie的权限。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -2353,7 +2485,8 @@ static existCookie(): boolean 获取是否存在cookie。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -2391,7 +2524,8 @@ static deleteEntireCookie(): void 清除所有cookie。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **示例:** @@ -2422,7 +2556,8 @@ static deleteSessionCookie(): void 清除所有会话cookie。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **示例:** @@ -2457,7 +2592,8 @@ static deleteOrigin(origin : string): void 清除指定源所使用的存储。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2509,7 +2645,8 @@ static getOrigins(callback: AsyncCallback\>) : void 以回调方式异步获取当前使用Web SQL数据库的所有源的信息。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2570,7 +2707,8 @@ static getOrigins() : Promise\> 以Promise方式异步获取当前使用Web SQL数据库的所有源的信息。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -2631,7 +2769,8 @@ static getOriginQuota(origin : string, callback : AsyncCallback\) : void 使用callback回调异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2690,7 +2829,8 @@ static getOriginQuota(origin : string) : Promise\ 以Promise方式异步获取指定源的Web SQL数据库的存储配额,配额以字节为单位。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2754,7 +2894,8 @@ static getOriginUsage(origin : string, callback : AsyncCallback\) : void 以回调方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2813,7 +2954,8 @@ static getOriginUsage(origin : string) : Promise\ 以Promise方式异步获取指定源的Web SQL数据库的存储量,存储量以字节为单位。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2877,7 +3019,8 @@ static deleteAllData(): void 清除Web SQL数据库当前使用的所有存储。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **示例:** @@ -2913,11 +3056,12 @@ web组件数据库管理对象。 ### getHttpAuthCredentials -static getHttpAuthCredentials(host: string, realm: string): Array +static getHttpAuthCredentials(host: string, realm: string): Array\ 检索给定主机和域的HTTP身份验证凭据,该方法为同步方法。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -2930,7 +3074,7 @@ static getHttpAuthCredentials(host: string, realm: string): Array | 类型 | 说明 | | ----- | -------------------------------------------- | -| Array | 包含用户名和密码的组数,检索失败返回空数组。 | +| Array\ | 包含用户名和密码的组数,检索失败返回空数组。 | **示例:** @@ -2972,7 +3116,8 @@ static saveHttpAuthCredentials(host: string, realm: string, username: string, pa 保存给定主机和域的HTTP身份验证凭据,该方法为同步方法。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -3018,7 +3163,8 @@ static existHttpAuthCredentials(): boolean 判断是否存在任何已保存的HTTP身份验证凭据,该方法为同步方法。存在返回true,不存在返回false。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **返回值:** @@ -3059,7 +3205,8 @@ static deleteHttpAuthCredentials(): void 清除所有已保存的HTTP身份验证凭据,该方法为同步方法。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **示例:** @@ -3098,7 +3245,8 @@ static allowGeolocation(origin: string): void 允许指定来源使用地理位置接口。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -3147,7 +3295,8 @@ static deleteGeolocation(origin: string): void 清除指定来源的地理位置权限状态。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -3197,7 +3346,8 @@ static getAccessibleGeolocation(origin: string, callback: AsyncCallback\ 以Promise方式异步获取指定源的地理位置权限状态。 +**系统能力:** +SystemCapability.Web.Webview.Core + **参数:** | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | @@ -3313,7 +3466,8 @@ static getStoredGeolocation(callback: AsyncCallback\>): void 以回调方式异步获取已存储地理位置权限状态的所有源信息。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **参数:** @@ -3361,6 +3515,9 @@ static getStoredGeolocation(): Promise\> 以Promise方式异步获取已存储地理位置权限状态的所有源信息。 +**系统能力:** +SystemCapability.Web.Webview.Core + **返回值:** | 类型 | 说明 | @@ -3406,7 +3563,8 @@ static deleteAllGeolocation(): void 清除所有来源的地理位置权限状态。 -**需要权限**:ohos.permission.INTERNET +**系统能力:** +SystemCapability.Web.Webview.Core **示例:** @@ -3453,6 +3611,7 @@ Web组件返回的请求/响应头对象。 | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 | | Img | HTML::img标签。 | | Map | 地理地址。 | +| Phone | 电话号码。 | | Unknown | 未知内容。 | ## HitTestValue @@ -3468,6 +3627,9 @@ Web组件返回的请求/响应头对象。 提供Web SQL数据库的使用信息。 +**系统能力:** +SystemCapability.Web.Webview.Core + | 名称 | 类型 | 必填 | 说明 | | ------ | ------ | :--- | -------------------- | | origin | string | 是 | 指定源的字符串索引。 | diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index b0b05888b5..cfc799864d 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -16,7 +16,7 @@ ## 接口 -Web(options: { src: ResourceStr, controller: WebController }) +Web(options: { src: ResourceStr, controller: WebController | WebviewController}) > **说明:** > @@ -27,7 +27,7 @@ Web(options: { src: ResourceStr, controller: WebController }) | 参数名 | 参数类型 | 必填 | 参数描述 | | ---------- | ------------------------------- | ---- | ------- | | src | [ResourceStr](ts-types.md) | 是 | 网页资源地址。 | -| controller | [WebController](#webcontroller) | 否 | 控制器。 | +| controller | [WebController](#webcontroller) 或 [WebviewController](../apis/js-apis-webview.md#webviewcontroller) |是 | 控制器。 | **示例:** @@ -45,6 +45,21 @@ Web(options: { src: ResourceStr, controller: WebController }) } } ``` + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + } + } + } + ``` 加载本地网页 ```ts @@ -193,7 +208,7 @@ imageAccess(imageAccess: boolean) ### javaScriptProxy javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Array\, - controller: WebController }) + controller: WebController | WebviewController}) 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。所有参数不支持更新。 @@ -204,7 +219,7 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr | object | object | 是 | - | 参与注册的对象。只能声明方法,不能声明属性。 | | name | string | 是 | - | 注册对象的名称,与window中调用的对象名一致。 | | methodList | Array\ | 是 | - | 参与注册的应用侧JavaScript对象的方法。 | -| controller | [WebController](#webcontroller) | 否 | - | 控制器。 | +| controller | [WebController](#webcontroller) 或 [WebviewController](../apis/js-apis-webview.md#webviewcontroller) | 是 | - | 控制器。 | **示例:** @@ -239,6 +254,39 @@ javaScriptProxy(javaScriptProxy: { object: object, name: string, methodList: Arr } } ``` + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + testObj = { + test: (data1, data2, data3) => { + console.log("data1:" + data1); + console.log("data2:" + data2); + console.log("data3:" + data3); + return "AceString"; + }, + toString: () => { + console.log('toString' + "interface instead."); + } + } + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .javaScriptAccess(true) + .javaScriptProxy({ + object: this.testObj, + name: "objName", + methodList: ["test", "toString"], + controller: this.controller, + }) + } + } + } + ``` ### javaScriptAccess -- GitLab