Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
cf890b7e
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
cf890b7e
编写于
2月 14, 2023
作者:
O
openharmony_ci
提交者:
Gitee
2月 14, 2023
浏览文件
操作
浏览文件
下载
差异文件
!14272 【web】删除已迁移的api9接口doc文档
Merge pull request !14272 from zhufenghao/master
上级
983ad64b
d4159176
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
629 addition
and
1397 deletion
+629
-1397
zh-cn/application-dev/reference/apis/js-apis-webview.md
zh-cn/application-dev/reference/apis/js-apis-webview.md
+20
-147
zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
...ication-dev/reference/arkui-ts/ts-basic-components-web.md
+39
-1248
zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-web.md
...se-notes/changelogs/OpenHarmony_3.2.10.7/changelog-web.md
+285
-1
zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-web.md
...ase-notes/changelogs/OpenHarmony_4.0.3.2/changelog-web.md
+285
-1
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-webview.md
浏览文件 @
cf890b7e
...
...
@@ -1578,7 +1578,7 @@ struct WebComponent {
this
.
ports
=
this
.
controller
.
createWebMessagePorts
();
// 2、在应用侧的消息端口(如端口1)上注册回调事件。
this
.
ports
[
1
].
onMessageEvent
((
result
:
web_webview
.
WebMessage
)
=>
{
var
msg
=
'
Got msg from HTML:
'
;
let
msg
=
'
Got msg from HTML:
'
;
if
(
typeof
(
result
)
==
"
string
"
)
{
console
.
log
(
"
received string message from html5, string is:
"
+
result
);
msg
=
msg
+
result
;
...
...
@@ -4270,133 +4270,6 @@ struct WebComponent {
}
```
## WebAsyncController
通过WebAsyncController可以控制Web组件具有异步回调通知的行为,一个WebAsyncController对象控制一个Web组件。
### 创建对象
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
();
webAsyncController
:
web_webview
.
WebAsyncController
=
new
web_webview
.
WebAsyncController
(
this
.
controller
)
build
()
{
Column
()
{
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### constructor<sup>9+</sup>
constructor(controller: WebController)
WebAsyncController的创建需要与一个
[
WebController
](
../arkui-ts/ts-basic-components-web.md#webcontroller
)
进行绑定。
**系统能力:**
SystemCapability.Web.Webview.Core
**参数:**
| 参数名| 类型 | 必填 | 说明 |
| ----- | ---- | ---- | --- |
| controller |
[
WebController
](
../arkui-ts/ts-basic-components-web.md#webcontroller
)
| 是 | 所绑定的WebviewController。|
### storeWebArchive<sup>9+</sup>
storeWebArchive(baseName: string, autoName: boolean, callback: AsyncCallback
\<
string>): void
以回调方式异步保存当前页面。
**系统能力:**
SystemCapability.Web.Webview.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ----------------------------------- |
| baseName | string | 是 | 文件存储路径,该值不能为空。
| autoName | boolean | 是 | 决定是否自动生成文件名。
<br/>
如果为false,则将baseName作为文件存储路径。
<br/>
如果为true,则假定baseName是一个目录,将根据当前页的Url自动生成文件名。
| callback | AsyncCallback
\<
string> | 是 | 返回文件存储路径,保持网页失败会返回null。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
saveWebArchive
'
)
.
onClick
(()
=>
{
let
webAsyncController
=
new
web_webview
.
WebAsyncController
(
this
.
controller
)
webAsyncController
.
storeWebArchive
(
"
/data/storage/el2/base/
"
,
true
,
(
filename
)
=>
{
if
(
filename
!=
null
)
{
console
.
info
(
`save web archive success:
${
filename
}
`
)
}
})
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### storeWebArchive<sup>9+</sup>
storeWebArchive(baseName: string, autoName: boolean): Promise
\<
string>
以Promise方式异步保存当前页面。
**系统能力:**
SystemCapability.Web.Webview.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ---------------------------------------- | ---- | ----------------------------------- |
| baseName | string | 是 | 文件存储路径,该值不能为空。
| autoName | boolean | 是 | 决定是否自动生成文件名。
<br/>
如果为false,则将baseName作为文件存储路径。
<br/>
如果为true,则假定baseName是一个目录,将根据当前页的Url自动生成文件名。
**返回值:**
| 类型 | 说明 |
| ---------------------------------------- | ---------------------------------------- |
| Promise
<string>
| Promise实例,保存成功返回文件路径,保存失败返回null。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
();
build
()
{
Column
()
{
Button
(
'
saveWebArchive
'
)
.
onClick
(()
=>
{
let
webAsyncController
=
new
web_webview
.
WebAsyncController
(
this
.
controller
);
webAsyncController
.
storeWebArchive
(
"
/data/storage/el2/base/
"
,
true
)
.
then
(
filename
=>
{
if
(
filename
!=
null
)
{
console
.
info
(
`save web archive success:
${
filename
}
`
)
}
})
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
## GeolocationPermissions
web组件地理位置权限管理对象。
...
...
zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
浏览文件 @
cf890b7e
...
...
@@ -3181,18 +3181,6 @@ handleFileList(fileList: Array\<string\>): void
web组件获取文件对象。示例代码参考
[
onShowFileSelector事件
](
#onshowfileselector9
)
。
### getTitle<sup>9+</sup>
getTitle(): string
获取文件选择器标题。
**返回值:**
| 类型 | 说明 |
| ------ | ---------- |
| string | 返回文件选择器标题。 |
### getMode<sup>9+</sup>
getMode(): FileSelectorMode
...
...
@@ -3816,40 +3804,6 @@ forward(): void
}
```
### backOrForward<sup>9+</sup>
backOrForward(step: number): void
按照历史栈,前进或者后退指定步长的页面,当历史栈中不存在对应步长的页面时,不会进行页面跳转。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---- | ------ | ---- | ---- | ----------- |
| step | number | 是 | - | 需要前进或后退的步长。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
@
State
step
:
number
=
-
2
build
()
{
Column
()
{
Button
(
'
backOrForward
'
)
.
onClick
(()
=>
{
this
.
controller
.
backOrForward
(
this
.
step
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### deleteJavaScriptRegister<sup>(deprecated)</sup>
deleteJavaScriptRegister(name: string)
...
...
@@ -3922,73 +3876,6 @@ getHitTest(): HitTestType
}
```
### getHitTestValue<sup>9+</sup>
getHitTestValue(): HitTestValue
获取当前被点击区域的元素信息。
**返回值:**
| 类型 | 说明 |
| ------------------------------ | ---------- |
|
[
HitTestValue
](
#hittestvalue9
)
| 点击区域的元素信息。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
getHitTestValue
'
)
.
onClick
(()
=>
{
let
hitValue
=
this
.
controller
.
getHitTestValue
()
console
.
log
(
"
hitType:
"
+
hitValue
.
getType
())
console
.
log
(
"
extra:
"
+
hitValue
.
getExtra
())
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### getWebId<sup>9+</sup>
getWebId(): number
获取当前Web组件的索引值,用于多个Web组件的管理。
**返回值:**
| 类型 | 说明 |
| ------ | ------------ |
| number | 当前Web组件的索引值。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
getWebId
'
)
.
onClick
(()
=>
{
let
id
=
this
.
controller
.
getWebId
()
console
.
log
(
"
id:
"
+
id
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### getTitle<sup>9+</sup>
getTitle(): string
...
...
@@ -4022,72 +3909,6 @@ getTitle(): string
}
```
### getPageHeight<sup>9+</sup>
getPageHeight(): number
获取当前网页的页面高度。
**返回值:**
| 类型 | 说明 |
| ------ | ---------- |
| number | 当前网页的页面高度。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
getPageHeight
'
)
.
onClick
(()
=>
{
let
pageHeight
=
this
.
controller
.
getPageHeight
()
console
.
log
(
"
pageHeight:
"
+
pageHeight
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### getDefaultUserAgent<sup>9+</sup>
getDefaultUserAgent(): string
获取当前默认用户代理。
**返回值:**
| 类型 | 说明 |
| ------ | ------- |
| string | 默认用户代理。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
getDefaultUserAgent
'
)
.
onClick
(()
=>
{
let
userAgent
=
this
.
controller
.
getDefaultUserAgent
()
console
.
log
(
"
userAgent:
"
+
userAgent
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### loadData<sup>(deprecated)</sup>
loadData(options: { data: string, mimeType: string, encoding: string, baseUrl?: string, historyUrl?: string })
...
...
@@ -4268,72 +4089,6 @@ zoom(factor: number): void
}
```
### zoomIn<sup>9+</sup>
zoomIn(): boolean
调用此接口将当前网页进行放大,比例为20%。
**返回值:**
| 类型 | 说明 |
| ------- | ----------- |
| boolean | 放大操作是否成功执行。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
zoomIn
'
)
.
onClick
(()
=>
{
let
result
=
this
.
controller
.
zoomIn
()
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### zoomOut<sup>9+</sup>
zoomOut(): boolean
调用此接口将当前网页进行缩小,比例为20%。
**返回值:**
| 类型 | 说明 |
| ------- | ----------- |
| boolean | 缩小操作是否成功执行。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
zoomOut
'
)
.
onClick
(()
=>
{
let
result
=
this
.
controller
.
zoomOut
()
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### refresh<sup>(deprecated)</sup>
refresh()
...
...
@@ -4550,11 +4305,17 @@ clearHistory(): void
}
```
### clearSslCache
### getCookieManager<sup>9+</sup>
getCookieManager(): WebCookie
获取web组件cookie管理对象。
clearSslCache(): void
**返回值:**
清除Web组件记录的SSL证书错误事件对应的用户操作行为。
| 类型 | 说明 |
| --------- | ---------------------------------------- |
| WebCookie | web组件cookie管理对象,参考
[
WebCookie
](
#webcookie
)
定义。 |
**示例:**
...
...
@@ -4567,9 +4328,9 @@ clearSslCache(): void
build
()
{
Column
()
{
Button
(
'
clearSslCache
'
)
Button
(
'
getCookieManager
'
)
.
onClick
(()
=>
{
this
.
controller
.
clearSslCache
()
let
cookieManager
=
this
.
controller
.
getCookieManager
()
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
...
...
@@ -4577,44 +4338,27 @@ clearSslCache(): void
}
```
### clearClientAuthenticationCache
clearClientAuthenticationCache(): void
清除Web组件记录的客户端证书请求事件对应的用户操作行为。
**示例:**
## WebCookie
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookie。通过controller方法中的getCookieManager方法可以获取WebCookie对象,进行后续的cookie管理操作。
build
()
{
Column
()
{
Button
(
'
clearClientAuthenticationCache
'
)
.
onClick
(()
=>
{
this
.
controller
.
clearClientAuthenticationCache
()
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### setCookie<sup>9+</sup>
setCookie(url: string, value: string): boolean
### getCookieManager<sup>9+</sup>
设置cookie,该方法为同步方法。设置成功返回true,否则返回false。
getCookieManager(): WebCookie
**参数:**
获取web组件cookie管理对象。
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ------ | ---- | ---- | ----------------- |
| url | string | 是 | - | 要设置的cookie所属的url。 |
| value | string | 是 | - | cookie的值。 |
**返回值:**
| 类型 | 说明 |
| -------
-- | ---------------------------
------------- |
|
WebCookie | web组件cookie管理对象,参考
[
WebCookie
](
#webcookie
)
定义
。 |
| -------
|
------------- |
|
boolean | 设置cookie是否成功
。 |
**示例:**
...
...
@@ -4627,28 +4371,26 @@ getCookieManager(): WebCookie
build
()
{
Column
()
{
Button
(
'
getCookieManager
'
)
Button
(
'
setCookie
'
)
.
onClick
(()
=>
{
let
cookieManager
=
this
.
controller
.
getCookieManager
()
let
result
=
this
.
controller
.
getCookieManager
().
setCookie
(
"
www.example.com
"
,
"
a=b
"
)
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### saveCookieSync<sup>9+</sup>
saveCookieSync(): boolean
### createWebMessagePorts<sup>9+</sup>
createWebMessagePorts(): Array
\<
WebMessagePort
\>
创建Web消息端口。
将当前存在内存中的cookie同步到磁盘中,该方法为同步方法。
**返回值:**
| 类型 | 说明 |
| -------
--------------------------------- |
---------- |
|
Array
\<
[
WebMessagePort
](
#webmessageport9
)
\>
| web消息端口列表
。 |
| -------
| ----------
---------- |
|
boolean | 同步内存cookie到磁盘操作是否成功
。 |
**示例:**
...
...
@@ -4658,13 +4400,13 @@ createWebMessagePorts(): Array\<WebMessagePort\>
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
ports
:
WebMessagePort
[]
=
null
build
()
{
Column
()
{
Button
(
'
createWebMessagePorts
'
)
Button
(
'
saveCookieSync
'
)
.
onClick
(()
=>
{
this
.
ports
=
this
.
controller
.
createWebMessagePorts
()
console
.
log
(
"
createWebMessagePorts size:
"
+
this
.
ports
.
length
)
let
result
=
this
.
controller
.
getCookieManager
().
saveCookieSync
()
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
...
...
@@ -4672,737 +4414,7 @@ createWebMessagePorts(): Array\<WebMessagePort\>
}
```
### postMessage<sup>9+</sup>
postMessage(options: { message: WebMessageEvent, uri: string}): void
发送Web消息端口到HTML5。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------- | ------------------------------------ | ---- | ---- | ----------------- |
| message |
[
WebMessageEvent
](
#webmessageevent9
)
| 是 | - | 要发送的消息,包含数据和消息端口。 |
| uri | string | 是 | - | 接收该消息的URI。 |
**示例:**
```
ts
// index.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
ports
:
WebMessagePort
[]
=
null
@
State
sendFromEts
:
string
=
'
Send this message from ets to HTML
'
@
State
receivedFromHtml
:
string
=
'
Display received message send from HTML
'
build
()
{
Column
()
{
// 展示接收到的来自HTML的内容
Text
(
this
.
receivedFromHtml
)
// 输入框的内容发送到HTML
TextInput
({
placeholder
:
'
Send this message from ets to HTML
'
})
.
onChange
((
value
:
string
)
=>
{
this
.
sendFromEts
=
value
})
// 1、创建两个消息端口
Button
(
'
1.CreateWebMessagePorts
'
)
.
onClick
(()
=>
{
this
.
ports
=
this
.
controller
.
createWebMessagePorts
()
console
.
log
(
"
createWebMessagePorts size:
"
+
this
.
ports
.
length
)
})
// 2、将其中一个消息端口发送到HTML侧,由HTML侧保存并使用。
Button
(
'
2.PostMessagePort
'
)
.
onClick
(()
=>
{
var
sendPortArray
=
new
Array
(
this
.
ports
[
1
])
var
msgEvent
=
new
WebMessageEvent
()
msgEvent
.
setData
(
"
__init_port__
"
)
msgEvent
.
setPorts
(
sendPortArray
)
this
.
controller
.
postMessage
({
message
:
msgEvent
,
uri
:
"
*
"
})
})
// 3、另一个消息端口在应用侧注册回调事件。
Button
(
'
3.RegisterCallback
'
)
.
onClick
(()
=>
{
this
.
ports
[
0
].
onMessageEvent
((
result
:
string
)
=>
{
var
msg
=
'
Got msg from HTML:
'
+
result
this
.
receivedFromHtml
=
msg
})
})
// 4、使用应用侧的端口给另一个已经发送到HTML的消息端口发送消息。
Button
(
'
4.SendDataToHtml5
'
)
.
onClick
(()
=>
{
var
msg
=
new
WebMessageEvent
()
msg
.
setData
(
this
.
sendFromEts
)
this
.
ports
[
0
].
postMessageEvent
(
msg
)
})
Web
({
src
:
$rawfile
(
"
index.html
"
),
controller
:
this
.
controller
})
.
javaScriptAccess
(
true
)
.
fileAccess
(
true
)
}
}
}
// index.html
<!
DOCTYPE
html
>
<
html
>
<
body
>
<
h1
>
Web
Message
Port
Demo
<
/h1
>
<
div
style
=
"
font-size: 24pt;
"
>
<
input
type
=
"
button
"
value
=
"
5.SendToEts
"
onclick
=
"
PostMsgToEts(msgFromJS.value);
"
/><
br
/>
<
input
id
=
"
msgFromJS
"
type
=
"
text
"
value
=
"
send this message from HTML to ets
"
style
=
"
font-size: 16pt;
"
/><
br
/>
<
/div
>
<
p
class
=
"
output
"
>
display
received
message
send
from
ets
<
/p
>
<
/body
>
<
script
src
=
"
index.js
"
><
/script
>
<
/html
>
// index.js
var
h5Port
;
var
output
=
document
.
querySelector
(
'
.output
'
);
window
.
addEventListener
(
'
message
'
,
function
(
event
)
{
if
(
event
.
data
==
'
__init_port__
'
)
{
if
(
event
.
ports
[
0
]
!=
null
)
{
h5Port
=
event
.
ports
[
0
];
// 1. 保存从ets侧发送过来的端口
h5Port
.
onmessage
=
function
(
event
)
{
// 2. 接收ets侧发送过来的消息.
var
msg
=
'
Got message from ets:
'
+
event
.
data
;
output
.
innerHTML
=
msg
;
}
}
}
})
// 3. 使用h5Port往ets侧发送消息.
function
PostMsgToEts
(
data
)
{
h5Port
.
postMessage
(
data
)
}
```
### getUrl<sup>9+</sup>
getUrl(): string
获取当前页面的url地址。
**返回值:**
| 类型 | 说明 |
| ------ | ----------- |
| string | 当前页面的url地址。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
getUrl
'
)
.
onClick
(()
=>
{
console
.
log
(
"
url:
"
+
this
.
controller
.
getUrl
())
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### searchAllAsync<sup>9+</sup>
searchAllAsync(searchString: string): void
异步查找网页中所有匹配关键字'searchString'的内容并高亮,结果通过
[
onSearchResultReceive
](
#onsearchresultreceive9
)
异步返回。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------------ | ------ | ---- | ---- | ------- |
| searchString | string | 是 | - | 查找的关键字。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
@
State
searchString
:
string
=
"
xxx
"
build
()
{
Column
()
{
Button
(
'
searchString
'
)
.
onClick
(()
=>
{
this
.
controller
.
searchAllAsync
(
this
.
searchString
)
})
Button
(
'
clearMatches
'
)
.
onClick
(()
=>
{
this
.
controller
.
clearMatches
()
})
Button
(
'
searchNext
'
)
.
onClick
(()
=>
{
this
.
controller
.
searchNext
(
true
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
.
onSearchResultReceive
(
ret
=>
{
console
.
log
(
"
on search result receive:
"
+
"
[cur]
"
+
ret
.
activeMatchOrdinal
+
"
[total]
"
+
ret
.
numberOfMatches
+
"
[isDone]
"
+
ret
.
isDoneCounting
)
})
}
}
}
```
### clearMatches<sup>9+</sup>
clearMatches(): void
清除所有通过
[
searchAllAsync
](
#searchallasync9
)
匹配到的高亮字符查找结果。
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
clearMatches
'
)
.
onClick
(()
=>
{
this
.
controller
.
clearMatches
()
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### searchNext<sup>9+</sup>
searchNext(forward: boolean): void
滚动到下一个匹配的查找结果并高亮。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------- | ------- | ---- | ---- | ----------- |
| forward | boolean | 是 | - | 从前向后或者逆向查找。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
searchNext
'
)
.
onClick
(()
=>
{
this
.
controller
.
searchNext
(
true
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
## HitTestValue<sup>9+</sup>
提供点击区域的元素信息。示例代码参考
[
getHitTestValue
](
#gethittestvalue9
)
。
### getType<sup>9+</sup>
getType(): HitTestType
获取当前被点击区域的元素类型。
**返回值:**
| 类型 | 说明 |
| ------------------------------- | ------------- |
|
[
HitTestType
](
#hittesttype枚举说明
)
| 当前被点击区域的元素类型。 |
### getExtra<sup>9+</sup>
getExtra(): string
若被点击区域为图片或链接,则附加参数信息为其url地址。
**返回值:**
| 类型 | 说明 |
| ------ | ------------ |
| string | 点击区域的附加参数信息。 |
## WebCookie
通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookie。通过controller方法中的getCookieManager方法可以获取WebCookie对象,进行后续的cookie管理操作。
### setCookie<sup>9+</sup>
setCookie(url: string, value: string): boolean
设置cookie,该方法为同步方法。设置成功返回true,否则返回false。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ------ | ---- | ---- | ----------------- |
| url | string | 是 | - | 要设置的cookie所属的url。 |
| value | string | 是 | - | cookie的值。 |
**返回值:**
| 类型 | 说明 |
| ------- | ------------- |
| boolean | 设置cookie是否成功。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
setCookie
'
)
.
onClick
(()
=>
{
let
result
=
this
.
controller
.
getCookieManager
().
setCookie
(
"
www.example.com
"
,
"
a=b
"
)
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### saveCookieSync<sup>9+</sup>
saveCookieSync(): boolean
将当前存在内存中的cookie同步到磁盘中,该方法为同步方法。
**返回值:**
| 类型 | 说明 |
| ------- | -------------------- |
| boolean | 同步内存cookie到磁盘操作是否成功。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
saveCookieSync
'
)
.
onClick
(()
=>
{
let
result
=
this
.
controller
.
getCookieManager
().
saveCookieSync
()
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### getCookie<sup>9+</sup>
getCookie(url: string): string
获取指定url对应cookie的值。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---- | ------ | ---- | ---- | ----------------- |
| url | string | 是 | - | 要获取的cookie所属的url。 |
**返回值:**
| 类型 | 说明 |
| ------ | ----------------- |
| string | 指定url对应的cookie的值。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
getCookie
'
)
.
onClick
(()
=>
{
let
value
=
web_webview
.
WebCookieManager
.
getCookie
(
'
www.example.com
'
)
console
.
log
(
"
value:
"
+
value
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### setCookie<sup>9+</sup>
setCookie(url: string, value: string): boolean
为指定url设置单个cookie的值。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ------ | ---- | ---- | ----------------- |
| url | string | 是 | - | 要设置的cookie所属的url。 |
| value | string | 是 | - | 要设置的cookie的值。 |
**返回值:**
| 类型 | 说明 |
| ------- | ------------- |
| boolean | 设置cookie是否成功。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
setCookie
'
)
.
onClick
(()
=>
{
let
result
=
web_webview
.
WebCookieManager
.
setCookie
(
'
www.example.com
'
,
'
a=b
'
)
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### saveCookieAsync<sup>9+</sup>
saveCookieAsync(): Promise
\<
boolean>
将当前存在内存中的cookie以Promise方法异步保存到磁盘中。
**返回值:**
| 类型 | 说明 |
| ----------------- | --------------------------- |
| Promise
\<
boolean> | Promise实例,用于获取cookie是否成功保存。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
saveCookieAsync
'
)
.
onClick
(()
=>
{
web_webview
.
WebCookieManager
.
saveCookieAsync
()
.
then
(
function
(
result
)
{
console
.
log
(
"
result:
"
+
result
)
})
.
catch
(
function
(
error
)
{
console
.
error
(
"
error:
"
+
error
)
})
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### saveCookieAsync<sup>9+</sup>
saveCookieAsync(callback: AsyncCallback
\<
boolean>): void
将当前存在内存中的cookie异步保存到磁盘中。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | ----------------------- | ---- | ---- | ---------------------------- |
| callback | AsyncCallback
\<
boolean> | 是 | - | 返回cookie是否成功保存的布尔值作为回调函数的入参。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
saveCookieAsync
'
)
.
onClick
(()
=>
{
web_webview
.
WebCookieManager
.
saveCookieAsync
(
function
(
result
)
{
console
.
log
(
"
result:
"
+
result
)
})
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### isCookieAllowed<sup>9+</sup>
isCookieAllowed(): boolean
获取WebCookieManager实例是否拥有发送和接收cookie的权限。
**返回值:**
| 类型 | 说明 |
| ------- | ------------------- |
| boolean | 是否拥有发送和接收cookie的权限。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
isCookieAllowed
'
)
.
onClick
(()
=>
{
let
result
=
web_webview
.
WebCookieManager
.
isCookieAllowed
()
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### putAcceptCookieEnabled<sup>9+</sup>
putAcceptCookieEnabled(accept: boolean): void
设置WebCookieManager实例是否拥有发送和接收cookie的权限。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------ | ------- | ---- | ---- | --------------------- |
| accept | boolean | 是 | - | 设置是否拥有发送和接收cookie的权限。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
putAcceptCookieEnabled
'
)
.
onClick
(()
=>
{
web_webview
.
WebCookieManager
.
putAcceptCookieEnabled
(
false
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### isThirdPartyCookieAllowed<sup>9+</sup>
isThirdCookieAllowed(): boolean
获取WebCookieManager实例是否拥有发送和接收第三方cookie的权限。
**返回值:**
| 类型 | 说明 |
| ------- | ---------------------- |
| boolean | 是否拥有发送和接收第三方cookie的权限。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
isThirdPartyCookieAllowed
'
)
.
onClick
(()
=>
{
let
result
=
web_webview
.
WebCookieManager
.
isThirdPartyCookieAllowed
()
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### putAcceptThirdPartyCookieEnabled<sup>9+</sup>
putAcceptThirdPartyCookieEnabled(accept: boolean): void
设置WebCookieManager实例是否拥有发送和接收第三方cookie的权限。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------ | ------- | ---- | ---- | ------------------------ |
| accept | boolean | 是 | - | 设置是否拥有发送和接收第三方cookie的权限。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
putAcceptThirdPartyCookieEnabled
'
)
.
onClick
(()
=>
{
web_webview
.
WebCookieManager
.
putAcceptThirdPartyCookieEnabled
(
false
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### existCookie<sup>9+</sup>
existCookie(): boolean
获取是否存在cookie。
**返回值:**
| 类型 | 说明 |
| ------- | ----------- |
| boolean | 是否存在cookie。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
existCookie
'
)
.
onClick
(()
=>
{
let
result
=
web_webview
.
WebCookieManager
.
existCookie
()
console
.
log
(
"
result:
"
+
result
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### deleteEntireCookie<sup>9+</sup>
deleteEntireCookie(): void
清除所有cookie。
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
deleteEntireCookie
'
)
.
onClick
(()
=>
{
web_webview
.
WebCookieManager
.
deleteEntireCookie
()
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### deleteSessionCookie<sup>9+</sup>
deleteSessionCookie(): void
清除所有会话cookie。
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
build
()
{
Column
()
{
Button
(
'
deleteSessionCookie
'
)
.
onClick
(()
=>
{
web_webview
.
WebCookieManager
.
deleteSessionCookie
()
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
## MessageLevel枚举说明
## MessageLevel枚举说明
| 名称 | 描述 |
| ----- | :---- |
...
...
@@ -5485,227 +4497,6 @@ onSslErrorEventReceive接口返回的SSL错误的具体原因。
| On | Web深色模式开启。 |
| Auto | Web深色模式跟随系统。 |
## WebMessagePort<sup>9+</sup>
通过WebMessagePort可以进行消息的发送以及接收。
### close<sup>9+</sup>
close(): void
关闭该消息端口。
### postMessageEvent<sup>9+</sup>
postMessageEvent(message: WebMessageEvent): void
发送消息。完整示例代码参考
[
postMessage
](
#postmessage9
)
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------- | ------------------------------------ | ---- | ---- | ------- |
| message |
[
WebMessageEvent
](
#webmessageevent9
)
| 是 | - | 要发送的消息。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
ports
:
WebMessagePort
[]
=
null
build
()
{
Column
()
{
Button
(
'
postMessageEvent
'
)
.
onClick
(()
=>
{
var
msg
=
new
WebMessageEvent
()
msg
.
setData
(
"
post message from ets to html5
"
)
this
.
ports
[
0
].
postMessageEvent
(
msg
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### onMessageEvent<sup>9+</sup>
onMessageEvent(callback: (result: string) => void): void
注册回调函数,接收HTML5侧发送过来的消息。完整示例代码参考
[
postMessage
](
#postmessage9
)
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| -------- | -------- | ---- | ---- | ---------- |
| callback | function | 是 | - | 接收消息的回调函数。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
ports
:
WebMessagePort
[]
=
null
build
()
{
Column
()
{
Button
(
'
onMessageEvent
'
)
.
onClick
(()
=>
{
this
.
ports
[
0
].
onMessageEvent
((
result
:
string
)
=>
{
console
.
log
(
"
received message from html5, on message:
"
+
result
);
})
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
## WebMessageEvent<sup>9+</sup>
通过WebMessagePort对要发送的消息和端口进行封装。
### getData<sup>9+</sup>
getData(): string
获取当前对象中存放的消息。
**返回值:**
| 类型 | 说明 |
| ------ | -------------- |
| string | 当前该类型对象中存放的消息。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
build
()
{
Column
()
{
Button
(
'
getPorts
'
)
.
onClick
(()
=>
{
var
msgEvent
=
new
WebMessageEvent
();
msgEvent
.
setData
(
"
message event data
"
)
var
messageData
=
msgEvent
.
getData
()
console
.
log
(
"
message is:
"
+
messageData
)
})
}
}
}
```
### setData<sup>9+</sup>
setData(data: string): void
设置当前对象中的消息。完整示例代码参考
[
postMessage
](
#postmessage9
)
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ---- | ------ | ---- | ---- | ------- |
| data | string | 是 | - | 要发送的消息。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
ports
:
WebMessagePort
[]
=
null
build
()
{
Column
()
{
Button
(
'
setData
'
)
.
onClick
(()
=>
{
var
msg
=
new
WebMessageEvent
()
msg
.
setData
(
"
post message from ets to HTML5
"
)
this
.
ports
[
0
].
postMessageEvent
(
msg
)
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
### getPorts<sup>9+</sup>
getPorts(): Array
\<
WebMessagePort
\>
获取当前对象中存放的消息端口。
**返回值:**
| 类型 | 说明 |
| ---------------------------------------- | ---------------- |
| Array
\<
[
WebMessagePort
](
#webmessageport9
)
\>
| 当前该类型对象中存放的消息端口。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
ports
:
WebMessagePort
[]
=
null
build
()
{
Column
()
{
Button
(
'
getPorts
'
)
.
onClick
(()
=>
{
var
sendPortArray
=
new
Array
(
this
.
ports
[
0
])
var
msgEvent
=
new
WebMessageEvent
()
msgEvent
.
setPorts
(
sendPortArray
)
var
getPorts
=
msgEvent
.
getPorts
()
console
.
log
(
"
Ports is:
"
+
getPorts
)
})
}
}
}
```
### setPorts<sup>9+</sup>
setPorts(ports: Array
\<
WebMessagePort
\>
): void
设置当前对象中的消息端口。完整示例代码参考
[
postMessage
](
#postmessage9
)
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ----- | ---------------------------------------- | ---- | ---- | --------- |
| ports | Array
\<
[
WebMessagePort
](
#webmessageport9
)
\>
| 是 | - | 要发送的消息端口。 |
**示例:**
```
ts
// xxx.ets
@
Entry
@
Component
struct
WebComponent
{
controller
:
WebController
=
new
WebController
()
ports
:
WebMessagePort
[]
=
null
build
()
{
Column
()
{
Button
(
'
setPorts
'
)
.
onClick
(()
=>
{
var
sendPortArray
=
new
Array
(
this
.
ports
[
1
])
var
msgEvent
=
new
WebMessageEvent
()
msgEvent
.
setData
(
"
__init_ports__
"
)
msgEvent
.
setPorts
(
sendPortArray
)
this
.
controller
.
postMessage
({
message
:
msgEvent
,
uri
:
"
*
"
})
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
## DataResubmissionHandler<sup>9+</sup>
通过DataResubmissionHandler可以重新提交表单数据或取消提交表单数据。
...
...
zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.7/changelog-web.md
浏览文件 @
cf890b7e
...
...
@@ -181,3 +181,287 @@ getHitTest接口,在3.2.10.7版本及后续版本中无法继续正常使用
**适配指导**
在使用getHitTest接口的返回值时,请使用WebHitTestType类型替换HitTestTypeV9类型。
## cl.web.6 WebMessagePort类迁移
WebMessagePort类迁移至@ohos.web.webview.d.ts,并新增错误码抛出。
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。
**关键的接口/组件变更**
-
涉及接口
postMessageEvent(message: WebMessageEvent): void;
onMessageEvent(callback: (result: string) => void): void;
-
变更前:
```
ts
postMessageEvent
(
message
:
WebMessageEvent
):
void
;
onMessageEvent
(
callback
:
(
result
:
string
)
=>
void
):
void
;
```
-
变更后:
```
ts
postMessageEvent
(
message
:
WebMessage
):
void
;
onMessageEvent
(
callback
:
(
result
:
WebMessage
)
=>
void
):
void
;
```
**适配指导**
原WebMessagePort类不需要import,现WebMessagePort类使用的是@ohos.web.webview,以下方式import:
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
## cl.web.7 HitTestValue类迁移
HitTestValue类迁移至@ohos.web.webview.d.ts,HitTestValue类变更为接口,getType,getExtra变更为属性。
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。
**关键的接口/组件变更**
-
涉及接口
getType(): HitTestType;
getExtra(): string;
-
变更前:
```
ts
getType
():
HitTestType
;
getExtra
():
string
;
```
-
变更后:
```
ts
type
:
WebHitTestType
;
extra
:
string
;
```
**适配指导**
原HitTestValue类不需要import,现HitTestValue类使用的是@ohos.web.webview,以下方式import:
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
## cl.web.8 WebCookie类下api9接口迁移
WebCookie类下api9接口迁移,WebCookie类下api9接口迁移到web.webview.webview.WebCookieManager。
并新增接口错误码抛出。
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。
该类方法变为静态方法。
**关键的接口/组件变更**
-
涉及接口
isCookieAllowed(): boolean;
isThirdPartyCookieAllowed(): boolean;
putAcceptCookieEnabled(accept: boolean): void;
putAcceptThirdPartyCookieEnabled(accept: boolean): void;
setCookie(url: string, value: string): boolean;
saveCookieSync(): boolean;
getCookie(url: string): string;
existCookie(): boolean;
deleteEntireCookie(): void;
deleteSessionCookie(): void;
-
变更前:
```
ts
isCookieAllowed
():
boolean
;
isThirdPartyCookieAllowed
():
boolean
;
putAcceptCookieEnabled
(
accept
:
boolean
):
void
;
putAcceptThirdPartyCookieEnabled
(
accept
:
boolean
):
void
;
setCookie
(
url
:
string
,
value
:
string
):
boolean
;
saveCookieSync
():
boolean
;
getCookie
(
url
:
string
):
string
;
existCookie
():
boolean
;
deleteEntireCookie
():
void
;
deleteSessionCookie
():
void
;
```
-
变更后:
```
ts
static
isCookieAllowed
():
boolean
;
static
isThirdPartyCookieAllowed
():
boolean
;
static
putAcceptCookieEnabled
(
accept
:
boolean
):
void
;
static
putAcceptThirdPartyCookieEnabled
(
accept
:
boolean
):
void
;
static
setCookie
(
url
:
string
,
value
:
string
):
void
;
static
saveCookieAsync
():
Promise
<
void
>
;
static
saveCookieAsync
(
callback
:
AsyncCallback
<
void
>
):
void
;
static
getCookie
(
url
:
string
):
string
;
static
existCookie
():
boolean
;
static
deleteEntireCookie
():
void
;
static
deleteSessionCookie
():
void
;
```
**适配指导**
原WebCookie类不需要import,现WebCookieManager使用的是@ohos.web.webview,以下方式import:
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
## cl.web.9 WebController类下api9接口迁移
WebController类下api9接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。
getDefaultUserAgent接口更名为getUserAgent。
**关键的接口/组件变更**
-
涉及接口
zoomIn(): boolean;
zoomOut(): boolean;
createWebMessagePorts(): Array
<WebMessagePort>
;
postMessage(options: { message: WebMessageEvent, uri: string}): void;
getHitTestValue(): HitTestValue;
getWebId(): number;
getDefaultUserAgent(): string;
getTitle(): string;
getPageHeight(): number;
backOrForward(step: number): void;
searchAllAsync(searchString: string): void;
clearMatches(): void;
searchNext(forward: boolean): void;
clearSslCache(): void;
clearClientAuthenticationCache(): void;
getUrl(): string;
-
变更前:
```
ts
zoomIn
():
boolean
;
zoomOut
():
boolean
;
createWebMessagePorts
():
Array
<
WebMessagePort
>
;
postMessage
(
options
:
{
message
:
WebMessageEvent
,
uri
:
string
}):
void
;
getHitTestValue
():
HitTestValue
;
getWebId
():
number
;
getDefaultUserAgent
():
string
;
getTitle
():
string
;
getPageHeight
():
number
;
backOrForward
(
step
:
number
):
void
;
searchAllAsync
(
searchString
:
string
):
void
;
clearMatches
():
void
;
searchNext
(
forward
:
boolean
):
void
;
clearSslCache
():
void
;
clearClientAuthenticationCache
():
void
;
getUrl
():
string
;
```
-
变更后:
```
ts
zoomIn
():
void
;
zoomOut
():
void
;
createWebMessagePorts
():
Array
<
WebMessagePort
>
;
postMessage
(
name
:
string
,
ports
:
Array
<
WebMessagePort
>
,
uri
:
string
):
void
;
getHitTestValue
():
HitTestValue
;
getWebId
():
number
;
getUserAgent
():
string
;
getTitle
():
string
;
getPageHeight
():
number
;
backOrForward
(
step
:
number
):
void
;
searchAllAsync
(
searchString
:
string
):
void
;
clearMatches
():
void
;
searchNext
(
forward
:
boolean
):
void
;
clearSslCache
():
void
;
clearClientAuthenticationCache
():
void
;
getUrl
():
string
;
```
**适配指导**
原WebController类不需要import,现WebviewController类使用的是@ohos.web.webview,以下方式import:
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
## cl.web.10 WebAsyncController类迁移
WebAsyncController类下接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。
**变更影响**
基于此前版本开发的应用,需注意错误码处理的使用。
**关键的接口/组件变更**
-
涉及接口
storeWebArchive(baseName: string, autoName: boolean): Promise
<string>
;
storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback
<string>
): void;
-
变更前:
```
ts
storeWebArchive
(
baseName
:
string
,
autoName
:
boolean
):
Promise
<
string
>
;
storeWebArchive
(
baseName
:
string
,
autoName
:
boolean
,
callback
:
AsyncCallback
<
string
>
):
void
;
```
-
变更后:
```
ts
storeWebArchive
(
baseName
:
string
,
autoName
:
boolean
):
Promise
<
string
>
;
storeWebArchive
(
baseName
:
string
,
autoName
:
boolean
,
callback
:
AsyncCallback
<
string
>
):
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
()
{
Button
(
'
saveWebArchive
'
)
.
onClick
(()
=>
{
try
{
this
.
controller
.
storeWebArchive
(
"
/data/storage/el2/base/
"
,
true
,
(
error
,
filename
)
=>
{
if
(
error
)
{
console
.
info
(
`save web archive error: `
+
JSON
.
stringify
(
error
))
return
;
}
if
(
filename
!=
null
)
{
console
.
info
(
`save web archive success:
${
filename
}
`
)
}
});
}
catch
(
error
)
{
console
.
error
(
`ErrorCode:
${
error
.
code
}
, Message:
${
error
.
message
}
`
);
}
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
\ No newline at end of file
zh-cn/release-notes/changelogs/OpenHarmony_4.0.3.2/changelog-web.md
浏览文件 @
cf890b7e
...
...
@@ -181,3 +181,287 @@ getHitTest接口,在4.0.3.2版本及后续版本中无法继续正常使用。
**适配指导**
在使用getHitTest接口的返回值时,请使用WebHitTestType类型替换HitTestTypeV9类型。
## cl.web.6 WebMessagePort类迁移
WebMessagePort类迁移至@ohos.web.webview.d.ts,并新增错误码抛出。
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。
**关键的接口/组件变更**
-
涉及接口
postMessageEvent(message: WebMessageEvent): void;
onMessageEvent(callback: (result: string) => void): void;
-
变更前:
```
ts
postMessageEvent
(
message
:
WebMessageEvent
):
void
;
onMessageEvent
(
callback
:
(
result
:
string
)
=>
void
):
void
;
```
-
变更后:
```
ts
postMessageEvent
(
message
:
WebMessage
):
void
;
onMessageEvent
(
callback
:
(
result
:
WebMessage
)
=>
void
):
void
;
```
**适配指导**
原WebMessagePort类不需要import,现WebMessagePort类使用的是@ohos.web.webview,以下方式import:
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
## cl.web.7 HitTestValue类迁移
HitTestValue类迁移至@ohos.web.webview.d.ts,HitTestValue类变更为接口,getType,getExtra变更为属性。
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。
**关键的接口/组件变更**
-
涉及接口
getType(): HitTestType;
getExtra(): string;
-
变更前:
```
ts
getType
():
HitTestType
;
getExtra
():
string
;
```
-
变更后:
```
ts
type
:
WebHitTestType
;
extra
:
string
;
```
**适配指导**
原HitTestValue类不需要import,现HitTestValue类使用的是@ohos.web.webview,以下方式import:
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
## cl.web.8 WebCookie类下api9接口迁移
WebCookie类下api9接口迁移,WebCookie类下api9接口迁移到web.webview.webview.WebCookieManager。
并新增接口错误码抛出。
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。
该类方法变为静态方法。
**关键的接口/组件变更**
-
涉及接口
isCookieAllowed(): boolean;
isThirdPartyCookieAllowed(): boolean;
putAcceptCookieEnabled(accept: boolean): void;
putAcceptThirdPartyCookieEnabled(accept: boolean): void;
setCookie(url: string, value: string): boolean;
saveCookieSync(): boolean;
getCookie(url: string): string;
existCookie(): boolean;
deleteEntireCookie(): void;
deleteSessionCookie(): void;
-
变更前:
```
ts
isCookieAllowed
():
boolean
;
isThirdPartyCookieAllowed
():
boolean
;
putAcceptCookieEnabled
(
accept
:
boolean
):
void
;
putAcceptThirdPartyCookieEnabled
(
accept
:
boolean
):
void
;
setCookie
(
url
:
string
,
value
:
string
):
boolean
;
saveCookieSync
():
boolean
;
getCookie
(
url
:
string
):
string
;
existCookie
():
boolean
;
deleteEntireCookie
():
void
;
deleteSessionCookie
():
void
;
```
-
变更后:
```
ts
static
isCookieAllowed
():
boolean
;
static
isThirdPartyCookieAllowed
():
boolean
;
static
putAcceptCookieEnabled
(
accept
:
boolean
):
void
;
static
putAcceptThirdPartyCookieEnabled
(
accept
:
boolean
):
void
;
static
setCookie
(
url
:
string
,
value
:
string
):
void
;
static
saveCookieAsync
():
Promise
<
void
>
;
static
saveCookieAsync
(
callback
:
AsyncCallback
<
void
>
):
void
;
static
getCookie
(
url
:
string
):
string
;
static
existCookie
():
boolean
;
static
deleteEntireCookie
():
void
;
static
deleteSessionCookie
():
void
;
```
**适配指导**
原WebCookie类不需要import,现WebCookieManager使用的是@ohos.web.webview,以下方式import:
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
## cl.web.9 WebController类下api9接口迁移
WebController类下api9接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。
**变更影响**
基于此前版本开发的应用,需注意d.ts位置的变更及import模块名的变更。现该类下接口支持错误码处理,需注意错误码处理的使用。
getDefaultUserAgent接口更名为getUserAgent。
**关键的接口/组件变更**
-
涉及接口
zoomIn(): boolean;
zoomOut(): boolean;
createWebMessagePorts(): Array
<WebMessagePort>
;
postMessage(options: { message: WebMessageEvent, uri: string}): void;
getHitTestValue(): HitTestValue;
getWebId(): number;
getDefaultUserAgent(): string;
getTitle(): string;
getPageHeight(): number;
backOrForward(step: number): void;
searchAllAsync(searchString: string): void;
clearMatches(): void;
searchNext(forward: boolean): void;
clearSslCache(): void;
clearClientAuthenticationCache(): void;
getUrl(): string;
-
变更前:
```
ts
zoomIn
():
boolean
;
zoomOut
():
boolean
;
createWebMessagePorts
():
Array
<
WebMessagePort
>
;
postMessage
(
options
:
{
message
:
WebMessageEvent
,
uri
:
string
}):
void
;
getHitTestValue
():
HitTestValue
;
getWebId
():
number
;
getDefaultUserAgent
():
string
;
getTitle
():
string
;
getPageHeight
():
number
;
backOrForward
(
step
:
number
):
void
;
searchAllAsync
(
searchString
:
string
):
void
;
clearMatches
():
void
;
searchNext
(
forward
:
boolean
):
void
;
clearSslCache
():
void
;
clearClientAuthenticationCache
():
void
;
getUrl
():
string
;
```
-
变更后:
```
ts
zoomIn
():
void
;
zoomOut
():
void
;
createWebMessagePorts
():
Array
<
WebMessagePort
>
;
postMessage
(
name
:
string
,
ports
:
Array
<
WebMessagePort
>
,
uri
:
string
):
void
;
getHitTestValue
():
HitTestValue
;
getWebId
():
number
;
getUserAgent
():
string
;
getTitle
():
string
;
getPageHeight
():
number
;
backOrForward
(
step
:
number
):
void
;
searchAllAsync
(
searchString
:
string
):
void
;
clearMatches
():
void
;
searchNext
(
forward
:
boolean
):
void
;
clearSslCache
():
void
;
clearClientAuthenticationCache
():
void
;
getUrl
():
string
;
```
**适配指导**
原WebController类不需要import,现WebviewController类使用的是@ohos.web.webview,以下方式import:
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
## cl.web.10 WebAsyncController类迁移
WebAsyncController类下接口迁移至web.webview.webview.WebviewController,并新增接口错误码抛出。
**变更影响**
基于此前版本开发的应用,需注意错误码处理的使用。
**关键的接口/组件变更**
-
涉及接口
storeWebArchive(baseName: string, autoName: boolean): Promise
<string>
;
storeWebArchive(baseName: string, autoName: boolean, callback : AsyncCallback
<string>
): void;
-
变更前:
```
ts
storeWebArchive
(
baseName
:
string
,
autoName
:
boolean
):
Promise
<
string
>
;
storeWebArchive
(
baseName
:
string
,
autoName
:
boolean
,
callback
:
AsyncCallback
<
string
>
):
void
;
```
-
变更后:
```
ts
storeWebArchive
(
baseName
:
string
,
autoName
:
boolean
):
Promise
<
string
>
;
storeWebArchive
(
baseName
:
string
,
autoName
:
boolean
,
callback
:
AsyncCallback
<
string
>
):
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
()
{
Button
(
'
saveWebArchive
'
)
.
onClick
(()
=>
{
try
{
this
.
controller
.
storeWebArchive
(
"
/data/storage/el2/base/
"
,
true
,
(
error
,
filename
)
=>
{
if
(
error
)
{
console
.
info
(
`save web archive error: `
+
JSON
.
stringify
(
error
))
return
;
}
if
(
filename
!=
null
)
{
console
.
info
(
`save web archive success:
${
filename
}
`
)
}
});
}
catch
(
error
)
{
console
.
error
(
`ErrorCode:
${
error
.
code
}
, Message:
${
error
.
message
}
`
);
}
})
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录