ts-basic-components-web.md 24.6 KB
Newer Older
Z
zengyawen 已提交
1 2 3
# Web

>![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 
L
lixingchi1 已提交
4
>该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
Z
zengyawen 已提交
5

L
lixingchi1 已提交
6
提供具有网页显示能力的Web组件。
Z
zengyawen 已提交
7

L
liwenzhen 已提交
8 9 10
## 权限列表
访问在线网页时需添加网络权限:ohos.permission.INTERNET

Z
zengyawen 已提交
11 12 13 14 15 16
## 子组件



## 接口

L
lixingchi1 已提交
17
-   Web\(options: { src: string, controller?: WebController }\)
Z
zengyawen 已提交
18

L
lixingchi1 已提交
19
    表1 options参数说明
Z
zengyawen 已提交
20

H
HelloCrease 已提交
21 22 23 24
    | 参数名        | 参数类型                            | 必填   | 默认值  | 参数描述    |
    | ---------- | ------------------------------- | ---- | ---- | ------- |
    | src        | string                          | 是    | -    | 网页资源地址。 |
    | controller | [WebController](#webcontroller) | 否    | -    | 控制器。    |
Z
zengyawen 已提交
25 26 27 28 29


> ![icon-note.gif](public_sys-resources/icon-note.gif)**说明:**
>
> - 不支持转场动画;
30 31
> - 不支持多实例;
> - 仅支持本地音视频播放。
Z
zengyawen 已提交
32 33

## 属性
H
HelloCrease 已提交
34 35 36
| 名称                | 参数类型                                     | 默认值            | 描述                                       |
| ----------------- | ---------------------------------------- | -------------- | ---------------------------------------- |
| domStorageAccess  | boolean                                  | false          | 设置是否开启文档对象模型存储接口(DOM Storage API)权限,默认未开启。 |
T
Ted 已提交
37 38
| fileAccess        | boolean                                  | false          | 设置是否开启通过[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)访问应用中rawfile路径的文件, 默认启用。 |
| fileFromUrlAccess | boolean                                  | true           | 设置是否允许通过网页中的JavaScript脚本访问[$rawfile(filepath/filename)](../../ui/ts-application-resource-access.md#资源引用)的内容,默认未启用。 |
H
HelloCrease 已提交
39
| imageAccess       | boolean                                  | true           | 设置是否允许自动加载图片资源,默认允许。                     |
L
liwenzhen 已提交
40
| javaScriptProxy   | { <br>  object: object, <br/> name: string, <br/> methodList: Array\<string\>, <br/> controller: WebController <br>} | -              | 注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。所有参数不支持更新。 <br/> object: 参与注册的对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean。<br/> name: 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。<br/> methodList: 参与注册的应用侧JavaScript对象的方法。<br/> controller: 控制器。 |
H
HelloCrease 已提交
41
| javaScriptAccess  | boolean                                  | true           | 设置是否允许执行JavaScript脚本,默认允许执行。             |
T
Ted 已提交
42
| mixedMode         | [MixedMode](#mixedmode枚举说明)                           | MixedMode.None | 设置是否允许加载超文本传输协议(HTTP)和超文本传输安全协议(HTTPS)混合内容,默认不允许加载HTTP和HTTPS混合内容。 |
H
HelloCrease 已提交
43
| onlineImageAccess | boolean                                  | true           | 设置是否允许从网络加载图片资源(通过HTTP和HTTPS访问的资源),默认允许访问。 |
T
Ted 已提交
44 45 46 47 48 49
| zoomAccess        | boolean                                  | true           | 设置是否支持手势进行缩放,默认允许执行缩放。|
| overviewModeAccess | boolean                                  | true           | 设置是否使用概览模式加载网页,默认使用该方式。|
| databaseAccess| boolean                                  | false           | 设置是否开启数据库存储API权限,默认不开启。|
| cacheMode |  [CacheMode](#cachemode枚举说明) | CacheMode.Default| 设置缓存模式。|
| textZoomAtio |  number | 100 | 设置页面的文本缩放百分比,默认为100%。 |
| userAgent |  string | - | 设置用户代理。 |
Z
zengyawen 已提交
50 51 52

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
L
lixingchi1 已提交
53
> 通用属性仅支持[width](ts-universal-attributes-size.md#属性)、[height](ts-universal-attributes-size.md#属性)、[padding](ts-universal-attributes-size.md#属性)、[margin](ts-universal-attributes-size.md#属性)、[border](ts-universal-attributes-border.md#属性)。
Z
zengyawen 已提交
54 55 56

## 事件

L
liwenzhen 已提交
57
不支持通用事件。
Z
zengyawen 已提交
58

T
Ted 已提交
59 60
| 名称                                                         | 功能描述                                                     |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
L
liwenzhen 已提交
61 62 63 64
| onAlert(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) | <p>网页触发alert()告警弹窗时触发回调。<br />当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(只有确认场景),并且根据用户的确认操作调用JsResult通知Web组件。<br />url:当前显示弹窗所在网页的URL。<br />message:弹窗中显示的信息。<br />JsResult:通知Web组件用户操作行为。</p> |
| onBeforeUnload(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) | <p>刷新或关闭场景下,在即将离开当前页面时触发此回调。<br />当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。<br />url:当前显示弹窗所在网页的URL。<br />message:弹窗中显示的信息。<br />JsResult:通知Web组件用户操作行为。</p> |
| onConfirm(callback: (event?: { url: string; message: string; result: [JsResult](#jsresult对象说明) }) => boolean) | <p>网页调用confirm()告警时触发此回调。<br />当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。<br />url:当前显示弹窗所在网页的URL。<br />message:弹窗中显示的信息。<br />JsResult:通知Web组件用户操作行为。</p> |
| onConsole(callback: (event?: { message: [ConsoleMessage](#consolemessage对象说明) }) => boolean) | <p>通知宿主应用JavaScript console消息。<br/>message:触发的控制台信息。</p> |
L
liwenzhen 已提交
65
| onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisposition: string, mimetype: string, contentLength: number }) => void) | <p>网页的下载任务开始时触发该回调。<br />url:文件下载的URL。<br />userAgent:下载的用户代理(UA)名称。<br />contentDisposition:服务器返回的 Content-Disposition响应头,可能为空。<br />mimetype:服务器返回内容媒体类型(MIME)信息。<br />contentLength:服务器返回文件的长度。</p> |
L
liwenzhen 已提交
66 67
| onErrorReceive(callback: (event?: { request: [WebResourceRequest](#webresourceerror对象说明), error: [WebResourceError](#webresourceerror对象说明) }) => void) | <p>网页加载遇到错误时触发该回调。<br/>出于性能考虑,建议此回调中尽量执行简单逻辑。<br/>request:网页请求的封装信息。<br/>error:网页加载资源错误的封装信息 。</p> |
| onHttpErrorReceive(callback: (event?: { request: [WebResourceRequest](#webresourceerror对象说明), response: [WebResourceResponse](#webresourceresponse对象说明) }) => void) | <p>网页加载资源遇到的HTTP错误(响应码>=400)时触发该回调。<br/>request:网页请求的封装信息。<br/>response:网页响应的封装信息</p> |
T
Ted 已提交
68 69
| onPageBegin(callback: (event?: { url: string }) => void)     | <p>网页开始加载时触发该回调,且只在主frame触发,iframe或者frameset的内容加载时不会触发此回调。<br/>url:页面的URL地址。</p> |
| onPageEnd(callback: (event?: { url: string }) => void)       | <p>网页加载完成时触发该回调,且只在主frame触发。<br/>url:页面的URL地址。</p> |
L
liwenzhen 已提交
70 71
| onProgressChange(callback: (event?: { newProgress: number }) => void) | <p>网页加载进度变化时触发该回调。<br/>newProgress:新的加载进度,取值范围为0到100的整数。</p> |
| onTitleReceive(callback: (event?: { title: string }) => void) | <p>网页document标题更改时触发该回调。<br/>title:document标题内容。</p> |
T
Ted 已提交
72 73 74 75
| onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean }) => void) | <p>加载网页页面完成时触发该回调,用于应用更新其访问的历史链接。<br/>url:访问的url。<br/>isRefreshed:true表示该页面是被重新加载的,false表示该页面是新加载的。</p> |
| onRenderExited(callback: (event?: { renderExitReason:  [RenderExitReason](#renderexitreason枚举说明) }) => void) | <p>应用渲染进程异常退出时触发该回调。<br/>renderExitReason:渲染进程进程异常退出的具体原因。</p> |
| onShowFileSelector(callback: (event?: { result: [FileSelectorResult](#fileselectorresult对象说明), fileSelector:  [FileSelectorParam](#fileselectorparam对象说明) }) => void) | <p>调用此函数以处理具有“文件”输入类型的HTML表单,以响应用户按下的“选择文件”按钮<br/>result:用于通知Web组件文件选择的结果。<br/>fileSelector:文件选择器的相关信息。</p> |
| onUrlLoadIntercept(callback: (event?: { data:string \| [WebResourceRequest](#webresourcerequest对象说明) }) => boolean) | <p>当Web组件加载url之前触发该回调,用于是否阻止此次访问。callback返回true表示阻止此次加载,否则允许此次加载。<br/>data:url的相关信息。</p> |
L
add web  
liujinwei 已提交
76

L
lixingchi1 已提交
77
### ConsoleMessage对象说明
L
add web  
liujinwei 已提交
78 79 80

- 接口

H
HelloCrease 已提交
81 82 83
  | 接口名称                            | 功能描述                   |
  | ------------------------------- | ---------------------- |
  | getLineNumber(): number         | 获取ConsoleMessage的行数。   |
L
lixingchi1 已提交
84 85
  | getMessage(): string            | 获取ConsoleMessage的日志信息。 |
  | getMessageLevel(): MessageLevel | 获取ConsoleMessage的信息级别。 |
H
HelloCrease 已提交
86
  | getSourceId(): string           | 获取网页源文件路径和名字。          |
L
lixingchi1 已提交
87 88 89 90 91 92 93 94 95 96

- MessageLevel枚举说明

  | 名称    | 描述    |
  | ----- | :---- |
  | Debug | 调试级别。 |
  | Error | 错误级别。 |
  | Info  | 消息级别。 |
  | Log   | 日志级别。 |
  | Warn  | 警告级别。 |
W
wzztoone 已提交
97

L
liwenzhen 已提交
98
### JsResult对象说明
L
lixingchi1 已提交
99 100

Web组件返回的弹窗确认或弹窗取消功能对象。
L
add web  
liujinwei 已提交
101 102 103

- 接口

H
HelloCrease 已提交
104 105
  | 接口名称                  | 功能描述                    |
  | --------------------- | ----------------------- |
L
liwenzhen 已提交
106 107
  | handleCancel(): void  | <p>通知Web组件用户取消弹窗操作。</p> |
  | handleConfirm(): void | <p>通知Web组件用户确认弹窗操作。</p> |
L
add web  
liujinwei 已提交
108 109 110 111 112

### WebResourceError对象说明

- 接口

L
lixingchi1 已提交
113 114 115
  | 接口名称                   | 功能描述         |
  | ---------------------- | ------------ |
  | getErrorCode(): number | 获取加载资源的错误码。  |
L
add web  
liujinwei 已提交
116 117
  | getErrorInfo(): string | 获取加载资源的错误信息。 |

L
lixingchi1 已提交
118
### WebResourceRequest对象说明
L
add web  
liujinwei 已提交
119 120 121

- 接口

H
HelloCrease 已提交
122 123 124 125 126 127 128
  | 接口名称                                     | 功能描述                 |
  | ---------------------------------------- | -------------------- |
  | getRequestHeader(): Array\<[Header](#header对象说明)\> | 获取资源请求头信息。           |
  | getRequestUrl(): string                  | 获取资源请求的URL信息。        |
  | isMainFrame(): boolean                   | 判断资源请求是否为主frame。     |
  | isRedirect(): boolean                    | 判断资源请求是否被服务端重定向。     |
  | isRequestGesture(): boolean              | 获取资源请求是否与手势(如点击)相关联。 |
L
liwenzhen 已提交
129 130 131 132 133 134 135

### Header对象说明

Web组件返回的请求/响应头对象。

- 参数

H
HelloCrease 已提交
136 137 138 139
  | 参数名称        | 参数类型   | 参数描述          |
  | ----------- | ------ | ------------- |
  | headerKey   | string | 请求/响应头的key。   |
  | headerValue | string | 请求/响应头的value。 |
L
liwenzhen 已提交
140

L
add web  
liujinwei 已提交
141

L
lixingchi1 已提交
142
### WebResourceResponse对象说明
L
add web  
liujinwei 已提交
143 144 145

- 接口

H
HelloCrease 已提交
146 147 148 149 150 151 152 153
  | 接口名称                                     | 功能描述               |
  | ---------------------------------------- | ------------------ |
  | getReasonMessage(): string               | 获取资源响应的状态码描述。      |
  | getResponseCode(): number                | 获取资源响应的状态码。        |
  | getResponseData(): string                | 获取资源响应数据。          |
  | getResponseEncoding(): string            | 获取资源响应的编码。         |
  | getResponseHeader(): Array\<[Header](#header对象说明)\> | 获取资源响应头。           |
  | getResponseMimeType(): string            | 获取资源响应的媒体(MIME)类型。 |
L
add web  
liujinwei 已提交
154

T
Ted 已提交
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
### RenderExitReason枚举说明

onRenderExited接口返回的渲染进程退出的具体原因。

| 名称                         | 描述                           |
| ---------------------------- | ------------------------------ |
| ProcessAbnormalTermination | 渲染进程异常退出。      |
| ProcessWasKilled           | 收到SIGKILL,或被手动终止。    |
| ProcessCrashed              | 渲染进程崩溃退出,如段错误。 |
| ProcessOom                  | 程序内存不足。                 |
| ProcessExitUnknown         | 其他原因。                     |

### MixedMode枚举说明

  | 名称         | 描述                                 |
  | ---------- | ---------------------------------- |
  | All        | 允许加载HTTP和HTTPS混合内容。所有不安全的内容都可以被加载。 |
  | Compatible | 混合内容兼容性模式,部分不安全的内容可能被加载。           |
  | None       | 不允许加载HTTP和HTTPS混合内容。               |

### CacheMode枚举说明
  | 名称         | 描述                                 |
  | ---------- | ---------------------------------- |
  | Default    | 使用未过期的cache加载资源,如果cache中无该资源则从网络中获取。 |
  | None | 加载资源使用cache,如果cache中无该资源则从网络中获取。         |
  | Online       | 加载资源不使用cache,全部从网络中获取。  |
  | Only       | 只从cache中加载资源。               |

### FileSelectorResult对象说明
通知Web组件的文件选择结果。

- 接口

  | 接口名称                                       | 功能描述                                                     |
  | ---------------------------------------------- | ------------------------------------------------------------ |
  | handleFileList(fileList: Array\<string>): void | 通知Web组件进行文件选择操作。fileList: 需要进行操作的文件列表。 |

### FileSelectorParam对象说明
- 接口

  | 接口名称                                     | 功能描述               |
  | ---------------------------------------- | ------------------ |
  | getTitle(): string               | 获取文件选择器标题。      |
  | getMode(): FileSelectorMode                | 获取文件选择器的模式。        |
  | getAcceptType(): Array\<string\>              | 获取文件过滤类型。          |
  | isCapture(): boolean            | 获取是否调用多媒体能力。         |
  
### FileSelectorMode枚举说明
| 名称                         | 描述                           |
| ---------------------------- | ------------------------------ |
| FileOpenMode | 打开上传单个文件。     |
| FileOpenMultipleMode           | 打开上传多个文件。    |
| FileOpenFolderMode              | 打开上传文件夹模式。 |
| FileSaveMode                  | 文件保存模式。                 |

Z
zengyawen 已提交
210 211
## WebController

L
liwenzhen 已提交
212
通过WebController可以控制Web组件各种行为。一个WebController对象只能控制一个Web组件,且必须在Web组件和WebController绑定后,才能调用WebController上的方法。
Z
zengyawen 已提交
213 214 215 216 217 218 219

### 创建对象

```
webController: WebController = new WebController()
```

L
lixingchi1 已提交
220 221 222 223
### accessBackward

accessBackward(): boolean

L
liwenzhen 已提交
224
当前页面是否可后退,即当前页面是否有返回历史记录。
L
lixingchi1 已提交
225 226 227 228 229

### accessForward

accessForward(): boolean

L
liwenzhen 已提交
230
当前页面是否可前进,即当前页面是否有前进历史记录。
L
lixingchi1 已提交
231 232

### accessStep
Z
zengyawen 已提交
233

L
lixingchi1 已提交
234
accessStep(step: number): boolean
Z
zengyawen 已提交
235

L
liwenzhen 已提交
236
当前页面是否可前进或者后退给定的step步。
Z
zengyawen 已提交
237 238 239

- 参数

L
lixingchi1 已提交
240 241 242 243
  | 参数名  | 参数类型   | 必填   | 默认值  | 参数描述                  |
  | ---- | ------ | ---- | ---- | --------------------- |
  | step | number | 是    | -    | 要跳转的步数,正数代表前进,负数代表后退。 |

244 245
- 返回值

H
HelloCrease 已提交
246 247
  | 参数类型    | 说明        |
  | ------- | --------- |
248 249
  | boolean | 页面是否前进或后退 |

L
lixingchi1 已提交
250 251 252 253
### backward

backward(): void

L
liwenzhen 已提交
254
按照历史栈,后退一个页面。一般结合accessBackward一起使用。
L
lixingchi1 已提交
255

L
lixingchi1 已提交
256 257
### deleteJavaScriptRegister

H
web api  
huye 已提交
258
deleteJavaScriptRegister(name: string): void
L
lixingchi1 已提交
259

L
liwenzhen 已提交
260
删除通过registerJavaScriptProxy注册到window上的指定name的应用侧JavaScript对象。
L
lixingchi1 已提交
261

H
web api  
huye 已提交
262
- 参数
L
lixingchi1 已提交
263

H
HelloCrease 已提交
264 265 266
  | 参数名  | 参数类型   | 必填   | 默认值  | 参数描述                                     |
  | ---- | ------ | ---- | ---- | ---------------------------------------- |
  | name | string | 是    | -    | 注册对象的名称,可在网页侧JavaScript中通过此名称调用应用侧JavaScript对象。 |
L
lixingchi1 已提交
267 268 269 270 271

### forward

forward(): void

L
liwenzhen 已提交
272
按照历史栈,前进一个页面。一般结合accessForward一起使用。
L
lixingchi1 已提交
273 274 275 276 277

### getHitTest

getHitTest(): HitTestType

L
liwenzhen 已提交
278
获取当前被点击区域的元素类型。	
L
lixingchi1 已提交
279 280 281

- HitTestType枚举说明

H
HelloCrease 已提交
282 283 284 285 286
  | 名称            | 描述                       |
  | ------------- | ------------------------ |
  | EditText      | 可编辑的区域。                  |
  | Email         | 电子邮件地址。                  |
  | HttpAnchor    | 超链接。其src为http。           |
L
liwenzhen 已提交
287
  | HttpAnchorImg | 带有超链接的图片,其中超链接的src为http。 |
H
HelloCrease 已提交
288 289 290
  | Img           | HTML::img标签。             |
  | Map           | 地理地址。                    |
  | Unknown       | 未知内容。                    |
L
lixingchi1 已提交
291 292 293 294 295

### loadData

loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string }): void

L
liwenzhen 已提交
296 297
baseUrl为空时,通过”data“协议加载指定的一段字符串。

L
liwenzhen 已提交
298
当baseUrl为”data“协议时,编码后的data字符串将被Web组件作为”data"协议加载。
L
liwenzhen 已提交
299

L
liwenzhen 已提交
300
当baseUrl为“http/https"协议时,编码后的data字符串将被Web组件以类似loadUrl的方式以非编码字符串处理。
L
lixingchi1 已提交
301 302 303

- options参数说明

H
HelloCrease 已提交
304 305 306 307 308 309 310
  | 参数名        | 参数类型   | 必填   | 默认值  | 参数描述                                     |
  | ---------- | ------ | ---- | ---- | ---------------------------------------- |
  | data       | string | 是    | -    | 按照”Base64“或者”URL"编码后的一段字符串。              |
  | mimeType   | string | 是    | -    | 媒体类型(MIME)。                              |
  | encoding   | string | 是    | -    | 编码类型,具体为“Base64"或者”URL编码。                |
  | baseUrl    | string | 否    | -    | 指定的一个URL路径(“http”/“https”/"data"协议),并由Web组件赋值给window.origin。 |
  | historyUrl | string | 否    | -    | 历史记录URL。非空时,可被历史记录管理,实现前后后退功能。当baseUrl为空时,此属性无效。 |
Z
zengyawen 已提交
311 312 313

### loadUrl

L
liwenzhen 已提交
314 315 316
loadUrl(options:{ url: string, headers?: Array\<Header\> }): void

使用指定的http头加载指定的URL。
Z
zengyawen 已提交
317

L
liwenzhen 已提交
318 319 320
通过loadUrl注入的对象只在当前document有效,即通过loadUrl导航到新的页面会无效。

而通过registerJavaScriptProxy注入的对象,在loadUrl导航到新的页面也会有效。
Z
zengyawen 已提交
321

H
web api  
huye 已提交
322
- options参数说明
Z
zengyawen 已提交
323

H
HelloCrease 已提交
324 325 326 327
  | 参数名     | 参数类型                           | 必填   | 默认值  | 参数描述           |
  | ------- | ------------------------------ | ---- | ---- | -------------- |
  | url     | string                         | 是    | -    | 需要加载的 URL。     |
  | headers | Array\<[Header](#header对象说明)\> | 否    | []   | URL的附加HTTP请求头。 |
L
lixingchi1 已提交
328 329 330 331 332

### onActive

onActive(): void

L
liwenzhen 已提交
333
调用此接口通知Web组件进入前台激活状态。
L
lixingchi1 已提交
334 335 336 337 338

### onInactive

onInactive(): void

L
liwenzhen 已提交
339
调用此接口通知Web组件进入未激活状态。
L
lixingchi1 已提交
340 341 342 343 344

### refresh

refresh(): void

L
liwenzhen 已提交
345
调用此接口通知Web组件刷新网页。
L
lixingchi1 已提交
346 347 348

### registerJavaScriptProxy

L
liwenzhen 已提交
349
registerJavaScriptProxy(options: { object: object, name: string, methodList: Array\<string\> }): void
L
lixingchi1 已提交
350

L
liwenzhen 已提交
351
注入JavaScript对象到window对象中,并在window对象中调用该对象的方法。注册后,须调用refresh接口生效。
L
lixingchi1 已提交
352 353 354

- options 参数说明

H
HelloCrease 已提交
355 356 357 358 359
  | 参数名        | 参数类型            | 必填   | 默认值  | 参数描述                                     |
  | ---------- | --------------- | ---- | ---- | ---------------------------------------- |
  | object     | object          | 是    | -    | 参与注册的应用侧JavaScript对象。只能声明方法,不能声明属性 。其中方法的参数和返回类型只能为string,number,boolean |
  | name       | string          | 是    | -    | 注册对象的名称,与window中调用的对象名一致。注册后window对象可以通过此名字访问应用侧JavaScript对象。 |
  | methodList | Array\<string\> | 是    | -    | 参与注册的应用侧JavaScript对象的方法。                 |
L
lixingchi1 已提交
360 361 362

### runJavaScript

H
web api  
huye 已提交
363
runJavaScript(options: { script: string, callback?: (result: string) => void }): void
L
lixingchi1 已提交
364

L
liwenzhen 已提交
365
异步执行JavaScript脚本,并通过回调方式返回脚本执行的结果。runJavaScript需要在loadUrl完成后,比如onPageEnd中调用。
L
lixingchi1 已提交
366

H
web api  
huye 已提交
367
- options参数说明
L
lixingchi1 已提交
368

H
HelloCrease 已提交
369 370 371 372
  | 参数名      | 参数类型                     | 必填   | 默认值  | 参数描述                                     |
  | -------- | ------------------------ | ---- | ---- | ---------------------------------------- |
  | script   | string                   | 是    | -    | JavaScript脚本。                            |
  | callback | (result: string) => void | 否    | -    | 回调执行JavaScript脚本结果。JavaScript脚本若执行失败或无返回值时,返回null。 |
L
lixingchi1 已提交
373 374 375 376

### stop

stop(): void
Z
zengyawen 已提交
377

L
lixingchi1 已提交
378
停止页面加载。
Z
zengyawen 已提交
379

T
Ted 已提交
380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420
### clearHistory

clearHistory(): void

删除所有前进后退记录。

### getCookieManager

getCookieManager(): WebCookie

获取web组件cookie管理对象。
- 返回值
  | 参数类型    | 说明        |
  | ------- | --------- |
  | WebCookie | web组件cookie管理对象,参考[WebCookie](#webcookie)定义。 |
## WebCookie
通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookie。通过controller方法中的getCookieManager方法可以获取WebCookie对象,进行后续的cookie管理操作。
### setCookie
setCookie(url: string, value: string): boolean

设置cookie,该方法为同步方法。设置成功返回true,否则返回false。

- 参数说明

  | 参数名      | 参数类型                     | 必填   | 默认值  | 参数描述                                     |
  | -------- | ------------------------ | ---- | ---- | ---------------------------------------- |
  | url   | string                   | 是    | -    | 要设置的cookie所属的url。                            |
  | value | string | 是    | -    | cookie的值。 |
- 返回值 
  | 参数类型    | 说明        |
  | ------- | --------- |
  | boolean | 设置cookie是否成功。 |

### saveCookieSync
saveCookieSync(): boolean

将当前存在内存中的cookie同步到磁盘中,该方法为同步方法。
- 返回值
  | 参数类型    | 说明        |
  | ------- | --------- |
  | boolean | 同步内存cookie到磁盘操作是否成功。 |
Z
zengyawen 已提交
421 422 423 424 425 426 427 428 429 430 431 432
## 示例

```
// webComponent.ets
@Entry
@Component
struct WebComponent {
  @State javaScriptAccess: boolean = true;
  @State fileAccess: boolean = true;
  controller: WebController = new WebController();
  build() {
    Column() {
L
lixingchi1 已提交
433 434 435
      Web({ src: $rawfile('index.html'), controller: this.controller })
      .javaScriptAccess(this.javaScriptAccess)
      .fileAccess(this.fileAccess)
Z
zengyawen 已提交
436 437
      .onPageEnd(e => {
        // test() 在 index.html 中已定义
L
lixingchi1 已提交
438
        this.controller.runJavaScript({ script: 'test()' });
Z
zengyawen 已提交
439 440 441 442 443
        console.log("url: ", e.url);
      })
    }
  }
}
L
lixingchi1 已提交
444 445 446
```
```
<!-- index.html -->
Z
zengyawen 已提交
447 448 449 450 451 452 453 454 455 456 457 458 459 460
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<body>
    Hello world!
</body>
<script type="text/javascript">
	function test() {
		console.log('Ark WebComponent');
	}
</script>
</html>
```

L
lixingchi1 已提交
461
![](figures/Web.png)