# @capgo/capacitor-share-target 中文文档

规范地址：https://npmcn.com/package/%40capgo/capacitor-share-target/

版本：8\.0\.65
npm 元数据更新时间：2026-11-02T13:33:38.201Z
中文译文更新时间：2026-11-09T02:29:19.664Z
软件包许可：MPL-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40capgo/capacitor-share-target
原文对照：https://npmcn.com/package/%40capgo/capacitor-share-target/?lang=original
项目主页：https://capgo.app/docs/plugins/share-target/
源码仓库：https://github.com/Cap-go/capacitor-share-target

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

- 包体积（解压后）：66.1 kB，23 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：@capacitor/core \>=8\.0\.0
- 首次发布：2025-10-27T06:18:30.430Z
- 最新版本发布：2026-11-02T13:33:37.917Z
- 近 30 天下载量：117819（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：71（近 12 个月 67 个）

## 中文简介

从其他应用程序接收共享内容

## 安装

```sh
npm install @capgo/capacitor-share-target
```

也可以使用：`pnpm add @capgo/capacitor-share-target`、`yarn add @capgo/capacitor-share-target`、`bun add @capgo/capacitor-share-target`

## README

# @ capgo/ 电容器- 份额- 目标

让用户通过iOS和Android上的系统共享表,直接从其他应用程序共享文本,链接,图像和文件到您的 Capacitor app.

[![Capgo - Build Capacitor apps with AI, ship updates instantly](https://capgo.app/readme-banner.svg?repo=Cap-go/capacitor-share-target)](https://capgo.app/?ref=plugin_share_target)

**队长**:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

## [\*免费开始\*](https://capgo.app/register/?ref=plugin_share_target)

14天无限自由审判. 不需要信用卡

> 🤖 **建筑与AI编码代理?** 安装 [Capgo 技能](https://capgo.app/skills/?ref=plugin_share_target) 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 `@capgo/capacitor-share-target` 在您的电容应用程序中: `npx skills add Cap-go/capgo-skills`。然后问你的经纪人: _添加@capgo/capor-share-target到我的Capacitor应用上并把它接上_ [代理设置指南](https://capgo.app/agents/?ref=plugin_share_target) • 妇女 [主机磁共振](https://capgo.app/docs/ai/mcp/?ref=plugin_share_target)

![@capgo/capacitor-share-target for Capacitor apps](https://raw.githubusercontent.com/Cap-go/capacitor-share-target/main/assets/github-social-preview.png)

## 主要特点

-   **共享活动**页:1 `shareReceived` 听者发送标题,文本和文件.
-   **文件**:每个共享文件都带有其URI,名称和MIME类型. 在 iOS 上, 您的共享扩展必须将这些附件细节保存到 App Group 中 .
-   **机器人**:通过为您想要的MIME类型设置的意向过滤器接收内容.
-   **iOS系统**: 通过 App 组来读取您共享扩展所保存的内容 `appGroupId`。 。 。 .
-   **平台**: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-21. iOS需要共享扩展目标. 在网上不可用.

## 兼容性

| 插件版本 | 电容兼容性 | 维护 |
| --- | --- | --- |
| 联合国 | 联合国 | ✅ |
| 页:1 | 页:1 | 应要求 |
| 页:1 | 页:1 | ❌ |
| 页:1 | 页:1 | ❌ |

> **说明:** 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.

## 安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

```bash
npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins
```

然后使用下列提示:

```text
Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-share-target` plugin in my project.
```

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

```bash
npm install @capgo/capacitor-share-target
npx cap sync
```

## 配置

### 机器人

在您的 `AndroidManifest.xml` 内部 `<activity>` 允许您的应用程序接收共享内容的标签 :

```xml
<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>
<intent-filter>
    <action android:name="android.intent.action.SEND_MULTIPLE" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>
```

您可以自定义 `mimeType` 以匹配要接收的内容类型(例如, `text/*`, (中文(简体) ), `image/*`, (中文(简体) ), `video/*`, (中文(简体) ), `*/*`) (中文(简体) ).

### iOS系统

对于iOS,您需要创建一个共享扩展来接收共享内容. 这需要额外设置:

1.  在 Xcode 中,转到文件 > New > 目标
2.  选择“ 共享扩展” 并单击下一个
3.  命名( 如“ 共享扩展 ”)并单击 Finish
4.  配置共享扩展以将数据保存到共享 App Group (例如, `group.com.yourcompany.app`(中文(简体) )
5.  配置您的插件 `capacitor.config.ts` 或者说 `capacitor.config.json`数字 :

```typescript
{
  plugins: {
    CapacitorShareTarget: {
      appGroupId: "group.com.yourcompany.app"
    }
  }
}
```

6.  在您的 ShareView Captain.swift 中,使用密钥保存共享数据 `"share-target-data"` 或者说 `"SharedData"` 以您的应用程序组ID 创建用户默认值

实例 ShareView Captain.swift :

```swift
import UIKit
import UniformTypeIdentifiers

class ShareViewController: UIViewController {
    let APP_GROUP_ID = "group.com.yourcompany.app"  // Same as in capacitor.config
    let APP_URL_SCHEME = "yourapp"  // Your app's URL scheme
    
    private var texts: [[String: Any]] = []
    private var files: [[String: Any]] = []

    override public func viewDidLoad() {
        super.viewDidLoad()
        
        guard let extensionItem = extensionContext?.inputItems.first as? NSExtensionItem,
              let attachments = extensionItem.attachments else {
            self.exit()
            return
        }

        Task {
            // Process attachments...
            // (See full implementation in issue examples)
            
            // Save to UserDefaults
            let shareData: [String: Any] = [
                "title": extensionItem.attributedTitle?.string ?? "",
                "texts": texts,
                "files": files
            ]
            
            let userDefaults = UserDefaults(suiteName: APP_GROUP_ID)
            userDefaults?.set(shareData, forKey: "share-target-data")
            userDefaults?.synchronize()
            
            // Open main app with your URL scheme
            let url = URL(string: "\(APP_URL_SCHEME)://share")!
            self.openURL(url)
        }
    }
    
    // ... rest of implementation
}
```

详细指示见 [iOS 共享扩展文档](https://developer.apple.com/documentation/uikit/uiactivityviewcontroller)。 。 。 .

## 使用量

```typescript
import { CapacitorShareTarget } from '@capgo/capacitor-share-target';

// Listen for shared content
CapacitorShareTarget.addListener('shareReceived', (event) => {
  console.log('Title:', event.title);
  console.log('Texts:', event.texts);

  event.files?.forEach(file => {
    console.log(`File: ${file.name}`);
    console.log(`Type: ${file.mimeType}`);
    console.log(`URI: ${file.uri}`);
  });
});
```

## API 密码

-   [`addListener('shareReceived', ...)`](https://npmcn.com/package/%40capgo/capacitor-share-target/#readme-addlistenersharereceived-)
-   [`removeAllListeners()`](https://npmcn.com/package/%40capgo/capacitor-share-target/#readme-removealllisteners)
-   [`getPluginVersion()`](https://npmcn.com/package/%40capgo/capacitor-share-target/#readme-getpluginversion)
-   [接口](https://npmcn.com/package/%40capgo/capacitor-share-target/#readme-interfaces)

电容共享目标插件接口.

此插件允许您的应用程序接收其他应用程序共享的内容 . 用户可以从其他应用程序中共享您的应用程序的文本, URL, 和文件 .

### 添加倾听器( “ 共享收到 ” ,...)

```typescript
addListener(eventName: 'shareReceived', listenerFunc: (event: ShareReceivedEvent) => void) => Promise<PluginListenerHandle>
```

听股受来事.

注册一个在与应用程序共享内容时会调用的收听器 从另一个应用程序。 召回接收包含标题、文本和文件的事件数据.

| 参数 | 类型 | 说明 |
| --- | --- | --- |
| **`eventName`** | `'shareReceived'` | 事件名称. 一定是"共享接收". |
| **`listenerFunc`** | `(event: [ShareReceivedEvent](https://npmcn.com/package/%40capgo/capacitor-share-target/#readme-sharereceivedevent)) => void` | 当内容被共享到应用时引用回调函数 . |

**回返情况:** `Promise<[PluginListenerHandle](https://npmcn.com/package/%40capgo/capacitor-share-target/#readme-pluginlistenerhandle)>`

**自:** 0.1.0 (中文(简体) )

* * *

### 删除所有收听器( )

```typescript
removeAllListeners() => Promise<void>
```

删除此插件的所有听众 .

**自:** 0.1.0 (中文(简体) )

* * *

### 获取 PluginVersion ()

```typescript
getPluginVersion() => Promise<{ version: string; }>
```

获取本地 Capacitor 插件版本 .

返回当前版本的本地插件执行 .

**回返情况:** `Promise<{ version: string; }>`

**自:** 0.1.0 (中文(简体) )

* * *

### 接口

#### 插件听筒

| Prop | 类型 |
| --- | --- |
| **`remove`** | `() => Promise<void>` |

#### 共享接收事件

与应用程序共享内容时收到的事件数据.

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`title`** | `string` | 共享内容的标题. | 0.1.0 (中文(简体) ) |
| **`texts`** | `string[]` | 与应用程序共享的文本内容组合 . | 0.1.0 (中文(简体) ) |
| **`files`** | `SharedFile[]` | 与应用程序共享的文件序列 . | 0.2.0 (中文(简体) ) |

#### 共享文件

代表应用程序共享的文件 .

| Prop | 类型 | 说明 | 自兹 |
| --- | --- | --- | --- |
| **`uri`** | `string` | 共享文件的 URI 。 在Android/iOS上,这将是一个文件路径或数据URL. 在网络上, 这将是一个缓存的 URL 通过获取访问 . | 0.1.0 (中文(简体) ) |
| **`name`** | `string` | 共享文件的名称,有或没有扩展名. | 0.1.0 (中文(简体) ) |
| **`mimeType`** | `string` | 共享文件的 MIME 类型 . | 0.1.0 (中文(简体) ) |

## 示例

在Android上,成功副本在应用程序缓存目录下直播 `shared_files`。插件删除超过24小时的复制件,并封顶保存多少个。 何时 `files[].uri` 是该目录下的一个路径, 在您完成处理后删除它 。 如果复制失败, `files[].uri` 可能是原始内容 URI .

以下是处理您的应用程序中共享内容的完整例子:

```typescript
import { CapacitorShareTarget } from '@capgo/capacitor-share-target';
import { Capacitor } from '@capacitor/core';

export class ShareService {
  async initialize() {
    // Only add listener on native platforms
    if (Capacitor.isNativePlatform()) {
      await CapacitorShareTarget.addListener('shareReceived', this.handleSharedContent);
    }
  }

  private handleSharedContent(event: ShareReceivedEvent) {
    console.log('Received shared content!');

    // Handle shared text
    if (event.texts.length > 0) {
      console.log('Shared text:', event.texts[0]);
      // Process the shared text (e.g., URL, note, etc.)
    }

    // Handle shared files
    if (event.files.length > 0) {
      event.files.forEach(async (file) => {
        console.log(`Processing file: ${file.name}`);

        if (file.mimeType.startsWith('image/')) {
          // Handle image files
          await this.processImage(file.uri);
        } else if (file.mimeType.startsWith('video/')) {
          // Handle video files
          await this.processVideo(file.uri);
        }
      });
    }
  }

  private async processImage(uri: string) {
    // Your image processing logic here
  }

  private async processVideo(uri: string) {
    // Your video processing logic here
  }

  async cleanup() {
    await CapacitorShareTarget.removeAllListeners();
  }
}
```

## 捐款

见 [捐款额](https://npmcn.com/package/%40capgo/capacitor-share-target/CONTRIBUTING.md)。 。 。 .

## 许可证

麻省理工学院

## 常见问题

### @capgo/capacitor-share-target 是什么？

从其他应用程序接收共享内容

### 如何安装 @capgo/capacitor-share-target？

在项目目录运行 npm install @capgo/capacitor-share-target，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@capacitor/core（\>=8\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @capgo/capacitor-share-target 支持 TypeScript 吗？

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

### @capgo/capacitor-share-target 支持 ESM 还是 CommonJS？

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

### @capgo/capacitor-share-target 可以商用吗？

@capgo/capacitor-share-target 使用 MPL-2\.0 许可。弱 Copyleft：可以商用，也可以和闭源代码一起使用；但如果分发时修改了 MPL 授权的文件，这些文件的修改需以 MPL 开源。以上为概括，不构成法律意见，请以许可原文为准。

### @capgo/capacitor-share-target 的下载量有多少？

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

### @capgo/capacitor-share-target 还在维护吗？

最新版本 8\.0\.65 发布于 2026/11/02（6 天前）；至今共发布 71 个版本，其中过去 12 个月发布了 67 个；首次发布于 2025/10/27。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

