Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
e635d08c
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看板
未验证
提交
e635d08c
编写于
1月 04, 2023
作者:
O
openharmony_ci
提交者:
Gitee
1月 04, 2023
浏览文件
操作
浏览文件
下载
差异文件
!13102 【Web子系统】新增深色模式、自定义协议、订阅事件回调接口
Merge pull request !13102 from yuhaoge/master
上级
eb16aac1
2e3d67b4
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
172 addition
and
0 deletion
+172
-0
zh-cn/application-dev/reference/apis/js-apis-webview.md
zh-cn/application-dev/reference/apis/js-apis-webview.md
+101
-0
zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
...ication-dev/reference/arkui-ts/ts-basic-components-web.md
+71
-0
未找到文件。
zh-cn/application-dev/reference/apis/js-apis-webview.md
浏览文件 @
e635d08c
...
...
@@ -19,6 +19,46 @@
```
ts
import
web_webview
from
'
@ohos.web.webview
'
;
```
### once
once(type: string, callback: Callback
\<
void
\>
): void
订阅一次指定类型Web事件的回调。
**系统能力:**
SystemCapability.Web.Webview.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| ------- | ---------------- | ---- | -------------------- |
| type | string | 是 | Web事件的类型,目前支持:"webInited"(Web初始化完成)。 |
| headers | Callback
\<
void
\>
| 是 | 所订阅的回调函数。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
web_webview
.
once
(
"
webInited
"
,
()
=>
{
console
.
log
(
"
setCookie
"
)
web_webview
.
WebCookieManager
.
setCookie
(
"
www.example.com
"
,
"
a=b
"
)
})
@
Entry
@
Component
struct
WebComponent
{
controller
:
web_webview
.
WebviewController
=
new
web_webview
.
WebviewController
();
build
()
{
Column
()
{
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
}
}
}
```
## WebMessagePort
通过WebMessagePort可以进行消息的发送以及接收。
...
...
@@ -2699,6 +2739,55 @@ struct WebComponent {
}
```
### customizeSchemes
static customizeSchemes(schemes: Array
\<
WebCustomScheme
\>
): void
配置Web自定义协议请求的权限。建议在任何Web组件初始化之前进行调用。
**系统能力:**
SystemCapability.Web.Webview.Core
**参数:**
| 参数名 | 类型 | 必填 | 说明 |
| -------- | ------- | ---- | -------------------------------------- |
| schemes | Array
\<
[
WebCustomScheme
](
#webcustomscheme
)
\>
| 是 | 自定义协议配置,最多支持同时配置10个自定义协议。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
;
@
Entry
@
Component
struct
WebComponent
{
controller
:
web_webview
.
WebviewController
=
new
web_webview
.
WebviewController
();
responseweb
:
WebResourceResponse
=
new
WebResourceResponse
()
scheme1
:
web_webview
.
WebCustomScheme
=
{
schemeName
:
"
name1
"
,
isSupportCORS
:
true
,
isSupportFetch
:
true
}
scheme2
:
web_webview
.
WebCustomScheme
=
{
schemeName
:
"
name2
"
,
isSupportCORS
:
true
,
isSupportFetch
:
true
}
scheme3
:
web_webview
.
WebCustomScheme
=
{
schemeName
:
"
name3
"
,
isSupportCORS
:
true
,
isSupportFetch
:
true
}
aboutToAppear
():
void
{
try
{
web_webview
.
WebviewController
.
customizeSchemes
([
this
.
scheme1
,
this
.
scheme2
,
this
.
scheme3
])
}
catch
(
error
)
{
console
.
error
(
`ErrorCode:
${
error
.
code
}
, Message:
${
error
.
message
}
`
);
}
}
build
()
{
Column
()
{
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
.
onInterceptRequest
((
event
)
=>
{
console
.
log
(
'
url:
'
+
event
.
request
.
getRequestUrl
())
return
this
.
responseweb
})
}
}
}
```
## WebCookieManager
通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookieManager实例。
...
...
@@ -4412,4 +4501,16 @@ struct WebComponent {
| historyRawUrl | string | 是 | 否 | 历史记录项的原始url地址。 |
| title | string | 是 | 否 | 历史记录项的标题。 |
## WebCustomScheme
自定义协议配置。
**系统能力:**
SystemCapability.Web.Webview.Core
| 名称 | 类型 | 可读 | 可写 | 说明 |
| -------------- | --------- | ---- | ---- | ---------------------------- |
| schemeName | string | 是 | 是 | 自定义协议名称。最大长度为32,其字符仅支持小写字母、数字、'.'、'+'、'-'。 |
| isSupportCORS | boolean | 是 | 是 | 是否支持跨域请求。 |
| isSupportFetch | boolean | 是 | 是 | 是否支持fetch请求。 |
###
\ No newline at end of file
zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md
浏览文件 @
e635d08c
...
...
@@ -1117,6 +1117,70 @@ webCursiveFont(family: string)
}
```
### darkMode<sup>9+</sup>
darkMode(mode: WebDarkMode)
设置Web深色模式,默认关闭。当深色模式开启时,Web将启用媒体查询prefer-color-scheme中网页所定义的深色样式,若网页未定义深色样式,则保持原状。如需开启强制深色模式,建议配合
[
forceDarkAccess
](
#forcedarkaccess9
)
使用。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------ | ----------- | ---- | --------------- | ------------------ |
| mode |
[
WebDarkMode
](
#webdarkmode9枚举说明
)
| 是 | WebDarkMode.Off | 设置Web的深色模式为关闭、开启或跟随系统。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
web_webview
.
WebviewController
=
new
web_webview
.
WebviewController
()
@
State
mode
:
WebDarkMode
=
WebDarkMode
.
On
build
()
{
Column
()
{
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
.
darkMode
(
this
.
mode
)
}
}
}
```
### forceDarkAccess<sup>9+</sup>
forceDarkAccess(access: boolean)
设置网页是否开启强制深色模式。默认关闭。该属性仅在
[
darkMode
](
#darkmode9
)
开启深色模式时生效。
**参数:**
| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 |
| ------ | ------- | ---- | ----- | ------------------ |
| access | boolean | 是 | false | 设置网页是否开启强制深色模式。 |
**示例:**
```
ts
// xxx.ets
import
web_webview
from
'
@ohos.web.webview
'
@
Entry
@
Component
struct
WebComponent
{
controller
:
web_webview
.
WebviewController
=
new
web_webview
.
WebviewController
()
@
State
mode
:
WebDarkMode
=
WebDarkMode
.
On
@
State
access
:
boolean
=
true
build
()
{
Column
()
{
Web
({
src
:
'
www.example.com
'
,
controller
:
this
.
controller
})
.
darkMode
(
this
.
mode
)
.
forceDarkAccess
(
this
.
access
)
}
}
}
```
## 事件
不支持通用事件。
...
...
@@ -6104,6 +6168,13 @@ onSslErrorEventReceive接口返回的SSL错误的具体原因。
| --------- | ------------- | -------------------------- |
| MidiSysex | MIDI SYSEX资源。 | 目前仅支持权限事件上报,MIDI设备的使用还未支持。 |
## WebDarkMode<sup>9+</sup>枚举说明
| 名称 | 描述 |
| ------- | ------------------------------------ |
| Off | Web深色模式关闭。 |
| On | Web深色模式开启。 |
| Auto | Web深色模式跟随系统。 |
## WebAsyncController
通过WebAsyncController可以控制Web组件具有异步回调通知的行为,一个WebAsyncController对象控制一个Web组件。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录