@aspectly/core

中文文档
2.2.0发布于 2026/09/06MITTypeScriptESM + CJS构建来源已验证近 30 天下载 5798

网络观测、iframes和网络应用程序之间跨平台通信的核心桥梁框架

中文使用文档
文档目录12 节
  1. 安装
  2. 概览
  3. 快速启动
  4. 在网络视图或框架内
  5. 浏览器脚本标签使用法
  6. API 参考
  7. 外观桥
  8. 处理错误
  9. 建筑
  10. 本地主机
  11. 相关软件包
  12. 许可证

@ spectly/ core (帮助) @ action

npm version npm downloads CI

Web vision, iframes, 和web应用之间的跨平台通信的核心桥架框架.

安装

# npm
npm install @aspectly/core

# pnpm
pnpm add @aspectly/core

# yarn
yarn add @aspectly/core

概览

@aspectly/core 提供基础桥式通信层,使双向消息能够在不同的执行上下文之间传递:

  • Webview QQ 反应原生: 网络内容与React Industrial apps之间的通信
  • iframe 父窗口: iframes与其主页之间的通信
  • 浏览器上下文: 具有全局桥接实例的独立浏览器用法

@aspectly/core 这是 网页侧 桥。 同样的代码运行 每个本地主机不变 ——Web(iframe/popup),回放原生,.NET(CefSharp/WebView2),iOS/macOS,Android,Flutter,和Linux/WebKitGTK. 正确的主机运输是 运行时自动检测 通过 @aspectly/transports (优先事项: cefsharp 100 > (韩语) webkit 95 > (韩语) react-native 90 > (韩语) android 85个 > flutter 84 > (韩语) iframe 80 > (韩语) window 70 > (韩语) postmessage 10),因此你的嵌入式网络应用从不需要特定主机的分支.

快速启动

在网络视图或框架内

import { AspectlyBridge } from '@aspectly/core';

// Create a bridge instance
const bridge = new AspectlyBridge();

// Initialize with handlers for incoming requests
await bridge.init({
  greet: async (params: { name: string }) => {
    return { message: `Hello, ${params.name}!` };
  },
  getData: async () => {
    return { timestamp: Date.now() };
  },
});

// Send requests to the parent container
const result = await bridge.send('parentMethod', { data: 'value' });
console.log(result);

浏览器脚本标签使用法

<script src="https://unpkg.com/@aspectly/core/dist/browser.js"></script>
<script>
  window.aspectlyBridge.init({
    greet: async (params) => ({ message: `Hello, ${params.name}!` })
  }).then(() => {
    console.log('Bridge initialized');
  });
</script>

API 参考

外观桥

通桥通信的主课.

构造器

const bridge = new AspectlyBridge(options?: BridgeOptions);

选项 :

  • timeout?: number - 处理器执行超时, 以毫秒计( 默认: 1 000)

方法

init(handlers?: BridgeHandlers): Promise<boolean>

启动桥接器处理收到的请求。 回来的诺言只有在两个都解决的时候 Init 财务报告和审定财务报表 InitResult 信件已经交换(通过 tryResolveInit),确保全面握手完成.

await bridge.init({
  methodName: async (params) => {
    // Handle request and return result
    return { success: true };
  },
});
send<T>(method: string, params?: object): Promise<T>

向彼所发请求.

const result = await bridge.send<{ data: string }>('getData', { id: 123 });
supports(method: string): boolean

检查某一方法是否得到另一方的支持 .

if (bridge.supports('getData')) {
  const data = await bridge.send('getData');
}
isAvailable(): boolean

检查桥是否初始化并准备就绪.

if (bridge.isAvailable()) {
  // Bridge is ready
}
subscribe(listener: BridgeListener): number

订阅用于监测/调试的所有结果事件 .

bridge.subscribe((result) => {
  console.log('Event:', result.method, result.data);
});
registerHandler(method: string, handler: (params: object) => Promise<unknown>): void

初始化后对收到的请求进行登记.

bridge.registerHandler('newMethod', async (params) => {
  return { result: 'value' };
});
unregisterHandler(method: string): void

删除先前注册的处理器 .

bridge.unregisterHandler('newMethod');
unsubscribe(listener: BridgeListener): void

删除结果事件倾听器 .

destroy(): void

清理桥订阅.

bridge.destroy();

处理错误

该桥为不同的故障情况提供打入错误:

import { BridgeErrorType } from '@aspectly/core';

try {
  await bridge.send('unknownMethod');
} catch (error) {
  switch (error.error_type) {
    case BridgeErrorType.UNSUPPORTED_METHOD:
      console.log('Method not registered');
      break;
    case BridgeErrorType.METHOD_EXECUTION_TIMEOUT:
      console.log('Handler timed out');
      break;
    case BridgeErrorType.REJECTED:
      console.log('Handler threw error:', error.error_message);
      break;
    case BridgeErrorType.BRIDGE_NOT_AVAILABLE:
      console.log('Bridge not initialized');
      break;
  }
}

建筑

该套装由四层组成:

  1. 桥芯 - 低级平台检测和信息序列化
  2. 桥内 - 礼宾管理和请求/答复生命周期
  3. 桥基 - 清洁公共API接口
  4. 外观桥 - 组成各层的主要入口

本地主机

一样 @aspectly/core 网络代码在每一个支持的平台家族上与本地主机交谈, 并自动选择传输方式 @aspectly/transports数字 :

  • 网页 (框架/人数), 原生反应,以及 反应本地网络/ Expo - npm 软件包
  • . NET 网络 (CefSharp / WebView2, Windows) — NuGet (英语)
  • iOS/macOS/ VisionOS 系统 — SwiftPM + CocoaPods (英语:AspectlyBridge, (中文(简体) ), AspectlyBridgeWebKit(中文(简体) )
  • 机器人 - 马文中心(io.github.jeanisahakyan:aspectly-bridge-webview(中文(简体) )
  • 小蝶头 (Dart)——酒吧.dev (中文(简体) )aspectly_bridge(中文(简体) )
  • Linux/ WebKitGTK 软件 (平通)——平通(平通)aspectly-bridge,重复使用WebKit运输)

见 主读取器 用于完整主机矩阵,安装命令,以及本地主机API.

许可证

麻省理工学院

版本与发布记录

@aspectly/core 共发布 12 个版本,首次发布于 2025/12/05;过去 12 个月发布了 12 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.2.0latest2026/09/062 个月前
2.1.02026/06/294 个月前
2.0.152026/06/224 个月前
2.0.142026/03/177 个月前
2.0.132026/03/177 个月前
2.0.122026/03/177 个月前

关于 @aspectly/core 的常见问题

@aspectly/core 是什么?

网络观测、iframes和网络应用程序之间跨平台通信的核心桥梁框架

如何安装 @aspectly/core?

在项目目录运行 npm install @aspectly/core,或使用 pnpm add / yarn add / bun add。

@aspectly/core 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aspectly/core 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@aspectly/core 可以商用吗?

@aspectly/core 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@aspectly/core 的下载量有多少?

根据 npm 官方下载统计,@aspectly/core 在 2026/10/07 – 2026/11/05 这 30 天内被下载 5,798 次,日均约 193 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aspectly/core 还在维护吗?

最新版本 2.2.0 发布于 2026/09/06(2 个月前);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2025/12/05。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。