@capgo/capacitor-share-target

中文文档
8.0.65发布于 2026/11/02MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 11.8万

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

中文使用文档
文档目录16 节
  1. *免费开始*
  2. 主要特点
  3. 兼容性
  4. 安装
  5. 配置
  6. 机器人
  7. iOS系统
  8. 使用量
  9. API 密码
  10. 添加倾听器( “ 共享收到 ” ,...)
  11. 删除所有收听器( )
  12. 获取 PluginVersion ()
  13. 接口
  14. 示例
  15. 捐款
  16. 许可证

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

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

Capgo - Build Capacitor apps with AI, ship updates instantly

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

*免费开始*

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

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

@capgo/capacitor-share-target for Capacitor apps

主要特点

  • 共享活动页: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 工具 :

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

然后使用下列提示:

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

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

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

配置

机器人

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

<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数字 :
{
  plugins: {
    CapacitorShareTarget: {
      appGroupId: "group.com.yourcompany.app"
    }
  }
}
  1. 在您的 ShareView Captain.swift 中,使用密钥保存共享数据 "share-target-data" 或者说 "SharedData" 以您的应用程序组ID 创建用户默认值

实例 ShareView Captain.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 共享扩展文档。 。 。 .

使用量

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 密码

电容共享目标插件接口.

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

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

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

听股受来事.

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

参数类型说明
eventName'shareReceived'事件名称. 一定是"共享接收".
listenerFunc(event: ShareReceivedEvent) => void当内容被共享到应用时引用回调函数 .

回返情况: Promise<PluginListenerHandle>

自: 0.1.0 (中文(简体) )


删除所有收听器( )

removeAllListeners() => Promise<void>

删除此插件的所有听众 .

自: 0.1.0 (中文(简体) )


获取 PluginVersion ()

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

获取本地 Capacitor 插件版本 .

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

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

自: 0.1.0 (中文(简体) )


接口

插件听筒

Prop类型
remove() => Promise<void>

共享接收事件

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

Prop类型说明自兹
titlestring共享内容的标题.0.1.0 (中文(简体) )
textsstring[]与应用程序共享的文本内容组合 .0.1.0 (中文(简体) )
filesSharedFile[]与应用程序共享的文件序列 .0.2.0 (中文(简体) )

共享文件

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

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

示例

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

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

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();
  }
}

捐款

见 捐款额。 。 。 .

许可证

麻省理工学院

版本与发布记录

@capgo/capacitor-share-target 共发布 71 个版本,首次发布于 2025/10/27;过去 12 个月发布了 67 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.0.65latest2026/11/026 天前
8.0.642026/10/2613 天前
8.0.632026/10/1920 天前
8.0.622026/10/1525 天前
8.0.612026/10/1327 天前
8.0.602026/10/1228 天前

关于 @capgo/capacitor-share-target 的常见问题

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