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

无需Extension,能否在UIActivityViewController中显示自身App并跳转?

嘿,我来帮你把这两个问题的答案理清楚哈~

1. 不用Extension,能不能让自己的App出现在其他App的UIActivityViewController里?

答案是不行的。UIActivityViewController里的第三方应用选项,本质上是靠系统识别的「分享扩展(Share Extension)」或「操作扩展(Action Extension)」来展示的。系统不会自动把你的主App加到这个列表里——毕竟主App是独立的进程,而UIActivityViewController的选项是给扩展准备的入口。

你提到的那篇Stack Overflow帖子用Extension是标准方案,这也是苹果官方推荐的方式。要是想让你的App出现在其他App的分享菜单里,必须创建对应的Extension Target,在Info.plist里配置好NSExtension相关参数(比如指定支持的内容类型、扩展类别),这样系统才会把它纳入UIActivityViewController的选项中。

2. 点击UIActivityViewController中的其他App时,能不能跳转至该App?

这个是可以的,不过要分几种情况来看:

  • 如果是系统自带的活动(比如短信、邮件),点击后系统会直接打开对应的系统App,或者唤起相应的功能界面。
  • 如果是第三方App的扩展选项,点击后首先会启动该App的Extension进程处理分享内容。处理完成后,你可以在Extension里通过openURL(_:options:completionHandler:)方法跳转——不过得先在Extension的Info.plist里配置NSExtensionActivationRule,申请com.apple.security.network.client权限,同时目标App要配置好对应的URL Scheme才行。
  • 另外,要是你是在自己的App里展示UIActivityViewController,想跳过扩展直接跳转其他App,那可以自定义UIActivity:在自定义活动的处理方法里,直接调用UIApplication.shared.open(_:options:completionHandler:)跳转目标App,前提是你知道对方的URL Scheme。

内容的提问来源于stack exchange,提问作者V D Purohit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:13:47