文档管理中心

@ohos.web.WebNativeMessagingExtensionAbility (Web Native Messaging Extension Ability)

WebNativeMessagingExtensionAbility是ArkWeb提供的Web原生消息通信扩展基类,继承自ExtensionAbility,允许Web页面通过Native Messaging机制与系统原生服务建立安全、双向的管道通信通道。开发者通过继承该类并实现其生命周期回调(如onConnectNativeonDisconnectNativeonDestroy),可以在Web页面发起连接请求时感知连接建立、获取调用方身份与双向管道文件描述符(见ConnectionInfo),并在连接断开或扩展销毁时完成资源释放。该能力主要用于浏览器扩展与应用通信的场景;应用侧需自行管理管道读写、权限校验及Ability生命周期。

说明

本模块首批接口从API version 21开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

PhonePC/2in1TabletTVWearable
收起
自动换行
深色代码主题
复制
  1. import { WebNativeMessagingExtensionAbility } from '@kit.ArkWeb';

WebNativeMessagingExtensionAbility

PhonePC/2in1TabletTVWearable

为开发者提供Web原生消息通信能力,继承自ExtensionAbility。

属性

PhonePC/2in1TabletTVWearable

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

模型约束: 此接口仅可在Stage模型下使用。

展开
名称 类型 只读 可选 说明
context WebNativeMessagingExtensionContext 当前Web原生消息扩展Ability的上下文。

onConnectNative

PhonePC/2in1TabletTVWearable

onConnectNative(info: ConnectionInfo): void

Web原生消息连接建立时回调此方法。

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

模型约束: 此接口仅可在Stage模型下使用。

参数:

展开
参数名 类型 必填 说明
info ConnectionInfo 连接信息对象。

示例:

收起
自动换行
深色代码主题
复制
  1. import { WebNativeMessagingExtensionAbility, ConnectionInfo } from '@kit.ArkWeb';
  2. export class MyWebNativeMessagingExtension extends WebNativeMessagingExtensionAbility {
  3. onConnectNative(info: ConnectionInfo): void {
  4. console.info('Web Native connection established!');
  5. console.info(`Connection ID: ${info.connectionId}`);
  6. console.info(`Caller bundle: ${info.bundleName}`);
  7. // 在此处处理连接建立后的业务逻辑
  8. }
  9. }

onDisconnectNative

PhonePC/2in1TabletTVWearable

onDisconnectNative(info: ConnectionInfo): void

Web原生消息连接断开时回调此方法。

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

模型约束: 此接口仅可在Stage模型下使用。

参数:

展开
参数名 类型 必填 说明
info ConnectionInfo 连接信息对象。

示例:

收起
自动换行
深色代码主题
复制
  1. import { WebNativeMessagingExtensionAbility, ConnectionInfo } from '@kit.ArkWeb';
  2. export class MyWebNativeMessagingExtension extends WebNativeMessagingExtensionAbility {
  3. onDisconnectNative(info: ConnectionInfo): void {
  4. console.info('Web Native connection closed!');
  5. console.info(`Connection ID: ${info.connectionId}`);
  6. // 在此处处理连接断开后的清理工作
  7. }
  8. }

onDestroy

PhonePC/2in1TabletTVWearable

onDestroy(): void

WebNativeMessagingExtensionAbility销毁时回调。

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

模型约束: 此接口仅可在Stage模型下使用。

示例:

收起
自动换行
深色代码主题
复制
  1. import { WebNativeMessagingExtensionAbility } from '@kit.ArkWeb';
  2. export class MyWebNativeMessagingExtension extends WebNativeMessagingExtensionAbility {
  3. onDestroy(): void {
  4. console.info('WebNativeMessagingExtensionAbility is about to be destroyed!');
  5. // 在此处释放资源或者执行清理操作
  6. }
  7. }

ConnectionInfo

PhonePC/2in1TabletTVWearable

Web原生消息连接的信息对象。

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

展开
名称 类型 只读 可选 说明
connectionId number 连接的唯一标识符。
bundleName string 调用方的应用包名。
extensionOrigin string 调用方扩展的原始URL。
fdRead number 用于读取数据的管道文件描述符。
fdWrite number 用于写入数据的管道文件描述符。
在 API参考 中进行搜索
请输入您想要搜索的关键词