目录

Class (ControllerHandler)

ControllerHandler是ArkWeb提供的处理新建Web组件控制器分配的帮助类。当Web页面通过window.open等方式请求创建新窗口,且Web组件已开启multiWindowAccess能力时,系统通过onWindowNew事件将ControllerHandler对象提供给应用。开发者需调用其setWebController方法为新窗口设置有效的WebviewController对象,将新窗口与页面中实际创建的Web组件关联;Web内核在等待setWebController调用期间会阻塞渲染进程,若应用决定不创建新窗口,必须调用setWebController(null)通知Web内核,否则渲染进程会持续阻塞。典型使用场景是在自定义弹窗、新页面或分屏中打开Web新窗口,并需要应用侧显式管理新窗口的URL展示与安全隔离。

  • 该组件从API version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

  • 本Class从API version 9开始支持。

  • 示例效果请以真机运行为准。

constructor9+

constructor()

ControllerHandler的构造函数。

系统能力: SystemCapability.Web.Webview.Core

setWebController9+

setWebController(controller: WebviewController): void

设置新创建Web组件的WebviewController对象;若应用决定不创建新窗口,必须设置为null通知Web内核,否则会造成渲染进程阻塞。

系统能力: SystemCapability.Web.Webview.Core

参数:

参数名 类型 必填 说明
controller WebviewController 是 新建Web组件的WebviewController对象,如果不需要打开新窗口请设置为null。