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 9e5ed5f6e9576ab31d1afdd108a419ca417527eb..595fafbbc48f861eb33aca0252cfc050739e7371 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-webview.md +++ b/zh-cn/application-dev/reference/apis/js-apis-webview.md @@ -246,7 +246,7 @@ loadData(data: string, mimeType: string, encoding: string, baseUrl?: string, his **系统能力:** SystemCapability.Web.Webview.Core -**参数:** +**参数:** | 参数名 | 类型 | 必填 | 说明 | | ---------- | ------ | ---- | ------------------------------------------------------------ | @@ -265,7 +265,7 @@ loadData(data: string, mimeType: string, encoding: string, baseUrl?: string, his | 17100001 | Init error. The WebviewController must be associated with a Web component. | | 17100002 | Invalid url. | -**示例:** +**示例:** ```ts // xxx.ets @@ -304,7 +304,7 @@ accessForward(): boolean **系统能力:** SystemCapability.Web.Webview.Core -**返回值:** +**返回值:** | 类型 | 说明 | | ------- | --------------------------------- | @@ -318,7 +318,7 @@ accessForward(): boolean | -------- | ------------------------------------------------------------ | | 17100001 | Init error. The WebviewController must be associated with a Web component. | -**示例:** +**示例:** ```ts // xxx.ets @@ -362,7 +362,7 @@ forward(): void | -------- | ------------------------------------------------------------ | | 17100001 | Init error. The WebviewController must be associated with a Web component. | -**示例:** +**示例:** ```ts // xxx.ets @@ -455,7 +455,7 @@ backward(): void | -------- | ------------------------------------------------------------ | | 17100001 | Init error. The WebviewController must be associated with a Web component. | -**示例:** +**示例:** ```ts // xxx.ets @@ -905,7 +905,7 @@ runJavaScript(script: string): Promise\ | ------ | -------- | ---- | ---------------- | | script | string | 是 | JavaScript脚本。 | -**返回值:** +**返回值:** | 类型 | 说明 | | --------------- | --------------------------------------------------- | @@ -2338,6 +2338,362 @@ Scroll Test ``` +### getOriginalUrl + +getOriginalUrl(): string + +获取当前页面的原始url地址。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| ------ | ----------------------- | +| string | 当前页面的原始url地址。 | + +**错误码:** + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | + +**示例:** + +```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('getOrgUrl') + .onClick(() => { + try { + let url = this.controller.getOriginalUrl(); + console.log("original url: " + url); + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + +### getFavicon + +getFavicon(): image.PixelMap + +获取页面的favicon图标。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| -------------------------------------- | ------------------------------- | +| [PixelMap](js-apis-image.md#pixelmap7) | 页面favicon图标的PixelMap对象。 | + +**错误码:** + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | + +**示例:** + +```ts +// xxx.ets +import web_webview from '@ohos.web.webview'; +import image from "@ohos.multimedia.image" +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + @State pixelmap: image.PixelMap = undefined; + + build() { + Column() { + Button('getFavicon') + .onClick(() => { + try { + this.pixelmap = this.controller.getFavicon(); + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + +### setNetworkAvailable + +setNetworkAvailable(enable: boolean): void + +设置JavaScript中的window.navigator.onLine属性。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------- | ---- | --------------------------------- | +| enable | boolean | 是 | 是否使能window.navigator.onLine。 | + +**错误码:** + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | + +**示例:** + +```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('setNetworkAvailable') + .onClick(() => { + try { + this.controller.setNetworkAvailable(true); + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + +### hasImage + +hasImage(callback: AsyncCallback): void + +通过Callback方式异步查找当前页面是否存在图像。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------- | ---- | -------------------------- | +| callback | AsyncCallback\ | 是 | 返回查找页面是否存在图像。 | + +**错误码:** + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web compoent. | + +**示例:** + +```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('hasImageCb') + .onClick(() => { + try { + this.controller.hasImage((err, data) => { + if (error) { + console.info(`hasImage error: ` + JSON.stringify(error)) + return; + } + console.info("hasImage: " + data); + }); + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + +### hasImage + +hasImage(): Promise + +通过Promise方式异步查找当前页面是否存在图像。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| ----------------- | --------------------------------------- | +| Promise\ | Promise实例,返回查找页面是否存在图像。 | + +**错误码:** + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web compoent. | + +**示例:** + +```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('hasImagePm') + .onClick(() => { + try { + this.controller.hasImage().then((data) => { + console.info('hasImage: ' + data); + }) + .catch(function (error) { + console.error("error: " + error); + }) + } catch (error) { + console.error(`Errorcode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + +### removeCache + +removeCache(clearRom: boolean): void + +清除应用中的资源缓存文件,此方法将会清除同一应用中所有webview的缓存文件。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------- | ---- | -------------------------------------------------------- | +| clearRom | boolean | 是 | 设置为true时同时清除rom和ram中的缓存,设置为false时只清除ram中的缓存。 | + +**错误码:** + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | + +**示例:** + +```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('removeCache') + .onClick(() => { + try { + this.controller.removeCache(false); + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + +### getBackForwardEntries + +getBackForwardEntries(): BackForwardList + +获取当前Webview的历史信息列表。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**返回值:** + +| 类型 | 说明 | +| ----------------------------------- | --------------------------- | +| [BackForwardList](#backforwardlist) | 当前Webview的历史信息列表。 | + +**错误码:** + +以下错误码的详细介绍请参见 [webview错误码](../errorcodes/errorcode-webview.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| 17100001 | Init error. The WebviewController must be associated with a Web component. | + +**示例:** + +```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('getBackForwardEntries') + .onClick(() => { + try { + let list = this.controller.getBackForwardEntries() + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + ## WebCookieManager 通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookieManager实例。 @@ -2356,7 +2712,7 @@ static getCookie(url: string): string | ------ | ------ | ---- | :------------------------ | | url | string | 是 | 要获取的cookie所属的url。 | -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ------------------------- | @@ -2503,7 +2859,7 @@ static saveCookieAsync(): Promise\ **系统能力:** SystemCapability.Web.Webview.Core -**返回值:** +**返回值:** | 类型 | 说明 | | ---------------- | ----------------------------------------- | @@ -2591,7 +2947,7 @@ static isCookieAllowed(): boolean **系统能力:** SystemCapability.Web.Webview.Core -**返回值:** +**返回值:** | 类型 | 说明 | | ------- | -------------------------------- | @@ -2670,7 +3026,7 @@ static isThirdPartyCookieAllowed(): boolean **系统能力:** SystemCapability.Web.Webview.Core -**返回值:** +**返回值:** | 类型 | 说明 | | ------- | -------------------------------------- | @@ -3965,4 +4321,82 @@ Web组件返回的请求/响应头对象。 | ------ | ------ | ---- | ---- | ---- | | origin | string | 是 | 否 | 指定源的字符串索引。 | | usage | number | 是 | 否 | 指定源的存储量。 | -| quota | number | 是 | 否 | 指定源的存储配额。 | \ No newline at end of file +| quota | number | 是 | 否 | 指定源的存储配额。 | + +## BackForwardList + +当前Webview的历史信息列表。 + +**系统能力:** SystemCapability.Web.Webview.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------ | ------ | ---- | ---- | ---------------------------- | +| currentIndex | number | 是 | 否 | 当前页面在页面历史列表中的索引。 | +| size | number | 是 | 否 | 历史列表中索引的数量。 | + +### getItemAtIndex + +getItemAtIndex(index: number): HistoryItem + +获取历史列表中指定索引的历史记录项信息。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------------------- | +| index | number | 是 | 指定历史列表中的索引。 | + +**返回值:** + +| 类型 | 说明 | +| --------------------------- | ------------ | +| [HistoryItem](#historyitem) | 历史记录项。 | + +**示例:** + +```ts +// xxx.ets +import web_webview from '@ohos.web.webview'; +import image from "@ohos.multimedia.image" + +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + @State icon: image.PixelMap = undefined; + + build() { + Column() { + Button('getBackForwardEntries') + .onClick(() => { + try { + let list = this.controller.getBackForwardEntries(); + let historyItem = list.getItemAtIndex(list.currentIndex); + console.log("HistoryItem: " + JSON.stringify(historyItem)); + this.icon = item.icon; + } catch (error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + }) + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + +## HistoryItem + +页面历史记录项。 + +**系统能力:** SystemCapability.Web.Webview.Core + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------- | -------------------------------------- | ---- | ---- | ---------------------------- | +| icon | [PixelMap](js-apis-image.md#pixelmap7) | 是 | 否 | 历史页面图标的PixelMap对象。 | +| historyUrl | string | 是 | 否 | 历史记录项的url地址。 | +| historyRawUrl | string | 是 | 否 | 历史记录项的原始url地址。 | +| title | string | 是 | 否 | 历史记录项的标题。 | + +### \ No newline at end of file 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 52142550d9516d15b610be4d4ce266df8ede2b48..8ad8242fa2556b9b6f495bc7b46abc13f9e49bc2 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 @@ -774,6 +774,347 @@ webDebuggingAccess(webDebuggingAccess: boolean) } ``` +### blockNetwork9+ + +blockNetwork(block: boolean) + +设置Web组件是否阻止从网络加载资源。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ------ | ----------------------------------- | +| block | boolean | 是 | false | 设置Web组件是否阻止从网络加载资源。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State block: boolean = true + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .blockNetwork(this.block) + } + } + } + ``` +### defaultFixedFontSize9+ + +defaultFixedFontSize(size: number) + +设置网页的默认等宽字体大小。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ------ | ---------------------------- | +| size | number | 是 | 13 | 设置网页的默认等宽字体大小,单位px。输入值的范围为-2^31到2^31-1,实际渲染时超过72的值按照72进行渲染,低于1的值按照1进行渲染。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State size: number = 16 + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .defaultFixedFontSize(this.size) + } + } + } + ``` + +### defaultFontSize9+ + +defaultFontSize(size: number) + +设置网页的默认字体大小。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ------ | ------------------------ | +| size | number | 是 | 16 | 设置网页的默认字体大小,单位px。输入值的范围为-2^31到2^31-1,实际渲染时超过72的值按照72进行渲染,低于1的值按照1进行渲染。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State size: number = 13 + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .defaultFontSize(this.size) + } + } + } + ``` + +### minFontSize9+ + +minFontSize(size: number) + +设置网页字体大小最小值。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ------ | ------------------------ | +| size | number | 是 | 8 | 设置网页字体大小最小值,单位px。输入值的范围为-2^31到2^31-1,实际渲染时超过72的值按照72进行渲染,低于1的值按照1进行渲染。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State size: number = 13 + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .minFontSize(this.size) + } + } + } + ``` + +### minLogicalFontSize9+ + +minLogicalFontSize(size: number) + +设置网页逻辑字体大小最小值。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ------ | ------------------------ | +| size | number | 是 | 8 | 设置网页逻辑字体大小最小值,单位px。输入值的范围为-2^31到2^31-1,实际渲染时超过72的值按照72进行渲染,低于1的值按照1进行渲染。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State size: number = 13 + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .minLogicalFontSize(this.size) + } + } + } + ``` + + +### webFixedFont9+ + +webFixedFont(family: string) + +设置网页的fixed font字体库。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | --------- | ---------------------------- | +| family | string | 是 | monospace | 设置网页的fixed font字体库。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State family: string = "monospace" + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .webFixedFont(this.family) + } + } + } + ``` + +### webSansSerifFont9+ + +webSansSerifFont(family: string) + +设置网页的sans serif font字体库。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ---------- | --------------------------------- | +| family | string | 是 | sans-serif | 设置网页的sans serif font字体库。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State family: string = "sans-serif" + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .webSansSerifFont(this.family) + } + } + } + ``` + +### webSerifFont9+ + +webSerifFont(family: string) + +设置网页的serif font字体库。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ------ | ---------------------------- | +| family | string | 是 | serif | 设置网页的serif font字体库。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State family: string = "serif" + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .webSerifFont(this.family) + } + } + } + ``` + +### webStandardFont9+ + +webStandardFont(family: string) + +设置网页的standard font字体库。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ---------- | ------------------------------- | +| family | string | 是 | sans serif | 设置网页的standard font字体库。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State family: string = "sans-serif" + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .webStandardFont(this.family) + } + } + } + ``` + +### webFantasyFont9+ + +webFantasyFont(family: string) + +设置网页的fantasy font字体库。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ------- | ------------------------------ | +| family | string | 是 | fantasy | 设置网页的fantasy font字体库。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State family: string = "fantasy" + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .webFantasyFont(this.family) + } + } + } + ``` + +### webCursiveFont9+ + +webCursiveFont(family: string) + +设置网页的cursive font字体库。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | -------- | ---- | ------- | ------------------------------ | +| family | string | 是 | cursive | 设置网页的cursive font字体库。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State family: string = "cursive" + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .webCursiveFont(this.family) + } + } + } + ``` + ## 事件 不支持通用事件。 @@ -1843,7 +2184,7 @@ onPermissionRequest(callback: (event?: { request: PermissionRequest }) => void) onContextMenuShow(callback: (event?: { param: WebContextMenuParam, result: WebContextMenuResult }) => boolean) -长按特定元素(例如图片,链接),跳出菜单。 +长按特定元素(例如图片,链接)或鼠标右键,跳出菜单。 **参数:** @@ -2161,6 +2502,181 @@ onSearchResultReceive(callback: (event?: {activeMatchOrdinal: number, numberOfMa } ``` +### onDataResubmitted9+ + +onDataResubmitted(callback: (event: {handler: DataResubmissionHandler}) => void) + +设置网页表单可以重新提交时触发的回调函数。 + +**参数:** + +| 参数名 | 参数类型 | 参数描述 | +| ------- | ---------------------------------------------------- | ---------------------- | +| handler | [DataResubmissionHandler](#dataresubmissionhandler9) | 表单数据重新提交句柄。 | + +**示例:** + + ```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 }) + .onDataResubmitted((event) => { + console.log('onDataResubmitted') + event.handler.resend(); + }) + } + } + } + ``` + +### onPageVisible9+ + +onPageVisible(callback: (event: {url: string}) => void) + +设置旧页面不再呈现,新页面即将可见时触发的回调函数。 + +**参数:** + +| 参数名 | 参数类型 | 参数描述 | +| ------ | -------- | ------------------------------------------------- | +| url | string | 旧页面不再呈现,新页面即将可见时新页面的url地址。 | + +**示例:** + + ```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 }) + .onPageVisible((event) => { + console.log('onPageVisible url:' + event.url) + }) + } + } + } + ``` + +### onInterceptKeyEvent9+ + +onInterceptKeyEvent(callback: (event: KeyEvent) => boolean) + +设置键盘事件的回调函数,该回调在被Webview消费前触发。 + +**参数:** + +| 参数名 | 参数类型 | 参数描述 | +| ------ | ------------------------------------------------------- | -------------------- | +| event | [KeyEvent](ts-universal-events-key.md#keyevent对象说明) | 触发的KeyEvent事件。 | + +**返回值:** + +| 类型 | 说明 | +| ------- | ------------------------------------------------------------ | +| boolean | 回调函数通过返回boolean类型值来决定是否继续将该KeyEvent传入Webview内核。 | + +**示例:** + + ```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 }) + .onInterceptKeyEvent((event) => { + if (event.keyCode == 2017 || event.keyCode == 2018) { + console.info(`onInterceptKeyEvent get event.keyCode ${event.keyCode}`) + return true; + } + return false; + }) + } + } + } + ``` + +### onTouchIconUrlReceived9+ + +onTouchIconUrlReceived(callback: (event: {url: string, precomposed: boolean}) => void) + +设置接收到apple-touch-icon url地址时的回调函数。 + +**参数:** + +| 参数名 | 参数类型 | 参数描述 | +| ----------- | -------- | ---------------------------------- | +| url | string | 接收到的apple-touch-icon url地址。 | +| precomposed | boolean | 对应apple-touch-icon是否为预合成。 | + +**示例:** + + ```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.baidu.com', controller: this.controller }) + .onTouchIconUrlReceived((event) => { + console.log('onTouchIconUrlReceived:' + JSON.stringify(event)) + }) + } + } + } + ``` + +### onFaviconReceived9+ + +onFaviconReceived(callback: (event: {favicon: image.PixelMap}) => void) + +设置应用为当前页面接收到新的favicon时的回调函数。 + +**参数:** + +| 参数名 | 参数类型 | 参数描述 | +| ------- | ---------------------------------------------- | ----------------------------------- | +| favicon | [PixelMap](../apis/js-apis-image.md#pixelmap7) | 接收到的favicon图标的PixelMap对象。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + import image from "@ohos.multimedia.image" + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State icon: image.PixelMap = undefined; + build() { + Column() { + Web({ src:'www.example.com', controller: this.controller }) + .onFaviconReceived((event) => { + console.log('onFaviconReceived:' + JSON.stringify(event)) + this.icon = event.favicon; + }) + } + } + } + ``` + ## ConsoleMessage Web组件获取控制台信息对象。示例代码参考[onConsole事件](#onconsole)。 @@ -2717,9 +3233,44 @@ grant(resources: Array\): void | --------- | --------------- | ---- | ---- | ------------- | | resources | Array\ | 是 | - | 网页所请求的权限资源列表。 | +## ContextMenuSourceType9+枚举说明 +| 名称 | 描述 | +| -------------------- | ---------- | +| None | 其他事件来源。 | +| Mouse | 鼠标事件。 | +| LongPress | 长按事件。 | + +## ContextMenuMediaType9+枚举说明 + +| 名称 | 描述 | +| ------------ | ----------- | +| None | 非特殊媒体或其他媒体类型。 | +| Image | 图片。 | + +## ContextMenuInputFieldType9+枚举说明 + +| 名称 | 描述 | +| ------------ | ----------- | +| None | 非输入框。 | +| PlainText | 纯文本类型,包括text、search、email等。 | +| Password | 密码类型。 | +| Number | 数字类型。 | +| Telephone | 电话号码类型。 | +| Other | 其他类型。 | + +## ContextMenuEditStateFlags9+枚举说明 + +| 名称 | 描述 | +| ------------ | ----------- | +| NONE | 不可编辑。 | +| CAN_CUT | 支持剪切。 | +| CAN_COPY | 支持拷贝。 | +| CAN_PASTE | 支持粘贴。 | +| CAN_SELECT_ALL | 支持全选。 | + ## WebContextMenuParam9+ -实现长按页面元素跳出来的菜单信息。示例代码参考[onContextMenuShow事件](#oncontextmenushow9)。 +实现长按页面元素或鼠标右键弹出来的菜单信息。示例代码参考[onContextMenuShow事件](#oncontextmenushow9)。 ### x9+ @@ -2793,9 +3344,81 @@ existsImageContents(): boolean | ------- | ------------------------- | | boolean | 长按位置中有图片返回true,否则返回false。 | +### getMediaType9+ + +getMediaType(): ContextMenuMediaType + +获取网页元素媒体类型。 + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ----------- | +| [ContextMenuMediaType](#contextmenumediatype9枚举说明) | 网页元素媒体类型。 | + +### getSelectionText9+ + +getSelectionText(): string + +获取选中文本。 + +**返回值:** + +| 类型 | 说明 | +| ------- | ------------------------- | +| string | 菜单上下文选中文本内容,不存在则返回空。 | + +### getSourceType9+ + +getSourceType(): ContextMenuSourceType + +获取菜单事件来源。 + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ----------- | +| [ContextMenuSourceType](#contextmenusourcetype9枚举说明) | 菜单事件来源。 | + +### getInputFieldType9+ + +getInputFieldType(): ContextMenuInputFieldType + +获取网页元素输入框类型。 + +**返回值:** + +| 类型 | 说明 | +| ---------------------------------------- | ----------- | +| [ContextMenuInputFieldType](#contextmenuinputfieldtype9枚举说明) | 输入框类型。 | + +### isEditable9+ + +isEditable(): boolean + +获取网页元素是否可编辑标识。 + +**返回值:** + +| 类型 | 说明 | +| ------- | ------------------------- | +| boolean | 网页元素可编辑返回true,不可编辑返回false。 | + +### getEditStateFlags9+ + +getEditStateFlags(): number + +获取网页元素可编辑标识。 + +**返回值:** + +| 类型 | 说明 | +| ------- | ------------------------- | +| number | 网页元素可编辑标识,参照[ContextMenuEditStateFlags](#contextmenueditstateflags9枚举说明)。 | + ## WebContextMenuResult9+ -实现长按页面元素跳出来的菜单所执行的响应事件。示例代码参考[onContextMenuShow事件](#oncontextmenushow9)。 +实现长按页面元素或鼠标右键弹出来的菜单所执行的响应事件。示例代码参考[onContextMenuShow事件](#oncontextmenushow9)。 ### closeContextMenu9+ @@ -2809,6 +3432,30 @@ copyImage(): void WebContextMenuParam有图片内容则复制图片。 +### copy9+ + +copy(): void + +执行与此上下文菜单相关的拷贝操作。 + +### paste9+ + +paste(): void + +执行与此上下文菜单相关的粘贴操作。 + +### cut9+ + +cut(): void + +执行与此上下文菜单相关的剪切操作。 + +### selectAll9+ + +selectAll(): void + +执行与此上下文菜单相关的全选操作。 + ## JsGeolocation Web组件返回授权或拒绝权限功能的对象。示例代码参考[onGeolocationShow事件](#ongeolocationshow)。 @@ -5771,4 +6418,62 @@ setPorts(ports: Array\): void } } } + ``` + +## DataResubmissionHandler9+ + +通过DataResubmissionHandler可以重新提交表单数据或取消提交表单数据。 + +### resend9+ + +resend(): void + +重新发送表单数据。 + +**示例:** + + ```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 }) + .onDataResubmitted((event) => { + console.log('onDataResubmitted') + event.handler.resend(); + }) + } + } + } + ``` + +### cancel9+ + +cancel(): void + +取消重新发送表单数据。 + +**示例:** + + ```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 }) + .onDataResubmitted((event) => { + console.log('onDataResubmitted') + event.handler.cancel(); + }) + } + } + } ``` \ No newline at end of file