You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS系统级自定义分享动作实现:所需API及Pinterest方案问询

全系统自定义分享动作实现方案

一、核心API与正确配置方式

  • UIActivity(兼容iOS全版本):你之前用它没在其他应用显示,大概率是配置不到位,要做好这几点:
    1. 自定义UIActivity子类,必须重写activityType(设唯一标识符,比如com.yourapp.custom-share)、activityTitle、activityImage这三个核心属性。
    2. 在Info.plist里添加NSUserActivityTypes数组,把你的自定义activity类型加进去。
    3. 关键:实现canPerform(withActivityItems:)方法,根据分享内容类型返回true——比如支持图片、链接、文本的话,只要传入的activityItems里包含这些类型,就返回true,这样其他应用的分享面板才会加载你的动作。
  • App Intents(iOS 16+推荐):iOS 16及以上用这个更简洁,步骤如下:
    1. 创建继承自ShareIntent的结构体,用@Parameter定义支持的输入内容(比如@Parameter(title: "分享内容") var content: [Any])。
    2. 实现perform()方法处理具体的分享逻辑。
    3. 在Info.plist中添加NSExtension配置,类型设为com.apple.intents-ui-service,关联你的Intent处理类,同时在IntentsSupported数组里声明你的ShareIntent类型。配置完成后,系统分享面板会自动识别并显示你的动作。

二、Pinterest的全场景适配逻辑

Pinterest能覆盖几乎所有分享场景,核心靠这几个操作:

  • 全数据类型兼容:它的分享动作在canPerform(withActivityItems:)里做了宽泛的判断,支持图片、URL、文本、各类文件等几乎所有常见分享数据类型,只要有可分享内容就会显示选项。
  • 注册Share Extension(系统级扩展):这是关键——它通过iOS的分享扩展能力,直接注册成系统级的分享选项。配置时在Info.plist里加NSExtension,类型设为com.apple.share-services,并指定支持的输入类型(比如public.image、public.url),这样任何应用调用系统分享时,只要数据类型匹配,Pinterest的选项就会出现。
  • 多API组合适配:同时结合UIActivity、Share Extension和App Intents,覆盖不同iOS版本;另外还支持拖拽分享、快捷指令调用等系统能力,进一步扩大覆盖场景。

三、你的UIActivity问题排查点

  • 检查Info.plist的NSUserActivityTypes数组是否包含你的自定义activity类型。
  • 确认canPerform(withActivityItems:)的逻辑是否太严格——比如如果只判断了图片类型,分享文本时就不会显示,要根据需求放宽判断。
  • 确保activityImage是有效图标(建议用矢量图适配多尺寸),activityTitle不为空。

内容的提问来源于stack exchange,提问作者gngrwzrd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 18:02:24