# @aspectly/core 中文文档

规范地址：https://npmcn.com/package/%40aspectly/core/

版本：2\.2\.0
npm 元数据更新时间：2026-09-05T22:32:37.255Z
中文译文更新时间：2026-11-06T23:50:07.603Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aspectly/core
原文对照：https://npmcn.com/package/%40aspectly/core/?lang=original
项目主页：https://github.com/JeanIsahakyan/aspectly/tree/main/packages/core#readme
源码仓库：https://github.com/JeanIsahakyan/aspectly

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：257 kB，28 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2025-12-05T04:08:25.948Z
- 最新版本发布：2026-09-05T22:32:36.862Z
- 近 30 天下载量：5798（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 12 个）

## 中文简介

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

## 安装

```sh
npm install @aspectly/core
```

也可以使用：`pnpm add @aspectly/core`、`yarn add @aspectly/core`、`bun add @aspectly/core`

## README

# @ spectly/ core (帮助) @ action

[![npm version](https://img.shields.io/npm/v/@aspectly/core?style=flat-square&logo=npm&color=cb3837)](https://www.npmjs.com/package/@aspectly/core) [![npm downloads](https://img.shields.io/npm/dm/@aspectly/core?style=flat-square&color=22c55e)](https://www.npmjs.com/package/@aspectly/core) [![CI](https://img.shields.io/github/actions/workflow/status/JeanIsahakyan/aspectly/ci.yml?style=flat-square&logo=github-actions&logoColor=white&label=CI)](https://github.com/JeanIsahakyan/aspectly/actions)

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

## 安装

```bash
# 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`](https://npmcn.com/package/%40aspectly/transports) (优先事项: `cefsharp` 100 > (韩语) `webkit` 95 > (韩语) `react-native` 90 > (韩语) `android` 85个 > `flutter` 84 > (韩语) `iframe` 80 > (韩语) `window` 70 > (韩语) `postmessage` 10),因此你的嵌入式网络应用从不需要特定主机的分支.

## 快速启动

### 在网络视图或框架内

```typescript
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);
```

### 浏览器脚本标签使用法

```html
<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 参考

### 外观桥

通桥通信的主课.

#### 构造器

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

**选项 :**

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

#### 方法

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

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

```typescript
await bridge.init({
  methodName: async (params) => {
    // Handle request and return result
    return { success: true };
  },
});
```

##### `send<T>(method: string, params?: object): Promise<T>`

向彼所发请求.

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

##### `supports(method: string): boolean`

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

```typescript
if (bridge.supports('getData')) {
  const data = await bridge.send('getData');
}
```

##### `isAvailable(): boolean`

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

```typescript
if (bridge.isAvailable()) {
  // Bridge is ready
}
```

##### `subscribe(listener: BridgeListener): number`

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

```typescript
bridge.subscribe((result) => {
  console.log('Event:', result.method, result.data);
});
```

##### `registerHandler(method: string, handler: (params: object) => Promise<unknown>): void`

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

```typescript
bridge.registerHandler('newMethod', async (params) => {
  return { result: 'value' };
});
```

##### `unregisterHandler(method: string): void`

删除先前注册的处理器 .

```typescript
bridge.unregisterHandler('newMethod');
```

##### `unsubscribe(listener: BridgeListener): void`

删除结果事件倾听器 .

##### `destroy(): void`

清理桥订阅.

```typescript
bridge.destroy();
```

## 处理错误

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

```typescript
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`](https://npmcn.com/package/%40aspectly/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运输)

见 [主读取器](https://npmcn.com/package/README.md) 用于完整主机矩阵,安装命令,以及本地主机API.

## 相关软件包

-   [`@aspectly/web`](https://npmcn.com/package/%40aspectly/web) - 网络/框架与反应钩的结合
-   [`@aspectly/react-native`](https://npmcn.com/package/%40aspectly/react-native) - 反应原生网络视频集成
-   [`@aspectly/react-native-web`](https://npmcn.com/package/%40aspectly/react-native-web) - 反应原生网络+iframe支持
-   [`@aspectly/transports`](https://npmcn.com/package/%40aspectly/transports) - 具有本地主机自动探测功能的运输层

## 许可证

麻省理工学院

## 常见问题

### @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 和提交记录判断。

