ArkWeb是什么,ArkWeb简介(新手必看)
ArkWeb(方舟 Web)是一个用于在应用程序中显示 Web 页面内容的 Web 组件,具备多种功能,包括页面加载、生命周期管理、属性与事件处理、与应用界面的交互、安全与隐私保护以及维测能力。
ArkWeb 提供了 Web 组件,用于在应用程序中显示 Web 页面内容。常见的使用场景包括:
App 通过 JavaScriptProxy 实现与 Web 页面之间的 JavaScript 交互:
需要注意的是,在使用 ArkWeb 打开网站时,需要配置网络权限,即在项目的 module.json5 中添加如下内容,进行网络权限的配置,否则无法打开网站。

图 1 ArkWeb 组件进程图
1) 应用进程为主进程,包括 UI 主线程和 Web 相关线程(应用唯一)。Web 相关线程包含网络线程、视频线程、音频线程和 IO 线程等。应用进程负责 Web 组件的北向接口与回调处理,以及网络请求、媒体服务等需要与其他系统服务交互的任务。
2) Foundation 进程(系统唯一),负责接收应用进程发起的孵化请求,管理应用进程和 Web 渲染进程的绑定关系。
3) Web 孵化进程(系统唯一),负责接收 Foundation 进程的请求,孵化 Web 渲染进程与 Web GPU 进程。孵化后进行安全沙箱降权和预加载动态库,以提升性能。
4) Web 渲染进程,负责运行 Web 渲染引擎,包括 HTML 解析、排版、绘制和渲染等操作。应用可以选择多个 Web 实例间共享渲染进程或独立运行进程。此外,Web 渲染进程还负责运行 ArkWeb 执行引擎,处理 JavaScript 和 Web Assembly。提供接口让应用根据需求选择多 Web 实例间是否共享渲染进程,以满足不同场景下对安全性、稳定性和内存占用的要求。默认策略:在移动设备上共享渲染进程以节省内存,而在 2in1(也就是二合一,是将两种技术或产品结合到一起的产品)设备上则采用独立渲染进程,以提升安全性和稳定性。
5) Web GPU 进程(应用唯一),负责处理与 GPU 及 RenderService 交互的功能,包括光栅化、合成和显示等操作,以提升应用进程的稳定性和安全性。
ArkWeb 提供了 Web 组件,用于在应用程序中显示 Web 页面内容。常见的使用场景包括:
- 应用集成 Web 页面:应用可以在页面中使用 Web 组件嵌入 Web 页面内容,以降低开发成本,提升开发和运营效率;
- 浏览器网页浏览场景:浏览器类应用可以使用 Web 组件打开第三方网页,支持无痕浏览模式、广告拦截等功能;
- 小程序:小程序类宿主应用可以使用 Web 组件渲染小程序的页面。
ArkWeb的功能
ArkWeb 提供了丰富的功能来控制和操作 Web 页面,主要包括以下几个方面:- Web页面加载:支持声明式加载 Web 页面和离屏加载 Web 页面等,提升页面加载体验;
- 生命周期管理:管理组件生命周期的状态变化,并通知 Web 页面加载状态的变化,确保页面与组件的同步;
- 常用属性与事件:包括 UserAgent 管理、Cookie 与存储管理、字体与深色模式管理、权限管理等;
- 与应用界面交互:提供自定义文本选择菜单、上下文菜单、文件上传界面等功能,增强与应用界面的交互能力。
App 通过 JavaScriptProxy 实现与 Web 页面之间的 JavaScript 交互:
- 安全与隐私:支持无痕浏览模式、广告拦截、坚盾守护模式等功能,保护用户隐私和安全;
- 维测能力:通过 DevTools 工具进行调试,使用 Crashpad 收集 Web 组件崩溃信息,确保应用的稳定性;
- 其他高阶能力:包括与原生组件同层渲染、Web 组件的网络托管、媒体播放托管、自定义输入法的调用、网页接入密码保险箱等。
需要注意的是,在使用 ArkWeb 打开网站时,需要配置网络权限,即在项目的 module.json5 中添加如下内容,进行网络权限的配置,否则无法打开网站。
"requestPermissions": [ { // 网络权限 "name": "ohos.permission.INTERNET" } ]
ArkWeb组件进程
ArkWeb 是多进程模型,分为应用进程、Foundation 进程、Web 孵化进程、Web 渲染进程和 Web GPU 进程,如下图所示:
图 1 ArkWeb 组件进程图
1) 应用进程为主进程,包括 UI 主线程和 Web 相关线程(应用唯一)。Web 相关线程包含网络线程、视频线程、音频线程和 IO 线程等。应用进程负责 Web 组件的北向接口与回调处理,以及网络请求、媒体服务等需要与其他系统服务交互的任务。
2) Foundation 进程(系统唯一),负责接收应用进程发起的孵化请求,管理应用进程和 Web 渲染进程的绑定关系。
3) Web 孵化进程(系统唯一),负责接收 Foundation 进程的请求,孵化 Web 渲染进程与 Web GPU 进程。孵化后进行安全沙箱降权和预加载动态库,以提升性能。
4) Web 渲染进程,负责运行 Web 渲染引擎,包括 HTML 解析、排版、绘制和渲染等操作。应用可以选择多个 Web 实例间共享渲染进程或独立运行进程。此外,Web 渲染进程还负责运行 ArkWeb 执行引擎,处理 JavaScript 和 Web Assembly。提供接口让应用根据需求选择多 Web 实例间是否共享渲染进程,以满足不同场景下对安全性、稳定性和内存占用的要求。默认策略:在移动设备上共享渲染进程以节省内存,而在 2in1(也就是二合一,是将两种技术或产品结合到一起的产品)设备上则采用独立渲染进程,以提升安全性和稳定性。
5) Web GPU 进程(应用唯一),负责处理与 GPU 及 RenderService 交互的功能,包括光栅化、合成和显示等操作,以提升应用进程的稳定性和安全性。