注册应用程序打开从Safari的“共享”或“打开在…”对话框不工作。 (虽然从其他应用程序的作品)

我试图注册我的应用程序,当用户点击任何html网页上的共享button时,在Safari的“打开…”对话框中显示。

我已经将public.data (和public.data为good measure)内容types添加到Xcode中的Document Types中,正如许多答案中所build议的:(请参阅此问题 , 此问题或此Apple文档 。

而且,它似乎工作。 如果我在Safari中打开.pdf,我会在顶部find“在我的应用程序中打开”对话框。 我也可以使用其他应用程序中的“打开…”对话框与我的应用程序共享文档。

为了testing它,我build立了DocInteraction 这个答案的build议,如果我创build一个HTML文件,我的应用程序出现在共享对话框。

但是,我的应用程序仍然不会显示在Safari的共享对话框中。 当我在iOS模拟器的iOS7上运行它时,我只能看到Mail,Twitter和Facebook:

没有我的应用程序的任何迹象!

当我在真实的iOS设备上testing时也是如此:

伤心的Safari不能找到我的应用程序

但是,我希望你注意,这似乎是可能的! 看看上面的截图。有些微博已经掌握了这个壮举。 我不知道如何,但由于某种原因,微博显示在这个名单,即使我的应用程序没有。

而且你知道,实际上,这种情况是有道理的,因为有多less应用程序可以打开html页面。 这里是我的iOS设备上运行的DocInteraction试图共享一个HTML页面:

每个人都想要一些.html动作!

在那里! 我的应用程序 (这实际上叫做“Wulu Podify”)。 但是有这么多的应用程序渴望.html页面,我想Safari认为提供这些应用程序可能有点不可思议。

但是,这仍然是个问题,微博是如何得到这个名单的? 但是,一些进一步的挖掘似乎表明,实际上微博似乎已经在每一个名单上得到了自己。

什么不能打开微博?

我不确定他们是如何pipe理的,但也许他们正在以不同的方式进行。

微博的“我会打开任何文件,你扔在我这边试一下”的方法可能会解决这个问题,但这并不理想。 我真的只想打开HTML页面。

所以。 我想我的问题是三重的:

  1. 有没有办法让我的应用程序显示在Safari的“打开在…”对话框?
  2. 如果不是,我怎样才能达到微博所取得的成就,并在所有的对话中出现?
  3. 我应该这样做吗? 这似乎是一个坏主意。

谢谢你的帮助! 我已经在这一段时间了!


更新:

所以实际上,我并没有意识到这一点,但我认为微博可能是一个像Facebook和Twitter一样的内置选项。 我认为它只是在那里,因为我已经安装在我的手机上,但也许这是iOS6的默认值之一。 我说因为当我在iOS6.0模拟器上testing时,我突然看到微博出现在共享屏幕上,尽pipe我确实没有在我的模拟器上安装它。

微博为所有!:( 悲伤的脸。

所以也许除此之外没有任何办法可以将它内置到Safari中。

我知道这是几年后,但如果有人遇到这个老问题,从iOS 8开始,苹果现在允许应用程序创build者制作“扩展”,允许您将应用程序添加到共享菜单。

这里是一些文件:

https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html

我怕你想要的是不可能的。

共享”对话框和“ 打开方式”对话框有所不同。

对于后者,可以使用文档交互注册您的应用程序,但共享对话框只提供本地types(微博是其中之一 – 请参阅: UIActivityViewController )。

另请参阅StackOverflow上的此问题: 是否可能添加应用程序到本机共享对话框

其所谓的扩展,拳头创build一个新的项目和比 – >文件 – >新 – >目标 – >应用程序扩展 – > ####

并select您所需的扩展名和完成….