注册应用程序以从Safari的"共享"或"打开..."对话框中打开不起作用.(虽然从其他应用程序工作)

NHD*_*aly 6 iphone safari objective-c ipad ios

当用户点击任何html网页上的分享按钮时,我正在尝试注册我的应用程序以显示在Safari的"Open-in ..."对话框中.

我已经在Xcode中的文档类型中添加了public.html(并且public.data有很好的衡量标准)内容类型,如许多答案所示:(请参阅此问题,此问题此Apple文档.)

而且,它似乎工作.如果我在Safari中打开.pdf,我会在顶部显示"在我的应用程序中打开"对话框.我还可以使用其他应用程序中的"open in ..."对话框与My App共享文档.

为了测试它,我按照这个答案中的建议构建了DocInteraction,如果我创建了一个html文件,我的应用程序将显示在共享对话框中.

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

在任何地方都没有My App的迹象!

当我在真正的iOS设备上测试它时也是如此:

悲伤的Safari无法找到我的应用程序

但是,我希望你注意到它似乎有可能!看看上面的截图..很多,微博已经完成了这个壮举.我不知道怎么样,但由于某种原因微博出现在这个列表中,即使我的应用程序没有.

而且你知道,实际上,考虑到有多少应用程序可以打开html页面,这种情况很有意义.这是在我的iOS设备上运行的DocInteraction,试图共享一个html页面:

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

它就是!我的应用!(它实际上被称为"Wulu Podify").但是有很多应用程序渴望.html页面,我想Safari认为提供它们可能有点压倒性.

但是,这仍然引出了一个问题,微博是如何进入这个名单的呢?但是,一些进一步的挖掘似乎表明,实际上微博似乎已经在每一个列表上.

什么不能微博开放?

我不确定他们是如何管理它的,但也许他们会以不同的方式解决这个问题.

微博的"I-will-open-any-document-you-to-me-c'mon-try-it-c'mon"方法可以解决这个问题,但这并不理想.我真的只想打开html页面.

所以.我猜我的问题有三个方面:

  1. 有没有办法让我的应用程序显示在Safari的"Open In ..."对话框中?
  2. 如果没有,我怎样才能实现微博所取得的成就,并在所有对话中出现?
  3. 我应该这样做吗?看起来这可能是一个坏主意.

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


更新:

所以,实际上,我没有意识到这一点,但我认为微博可能是一个像Facebook和Twitter一样的内置选项.我以为它就在那里,因为我把它安装在我的手机上,但也许它是iOS6的默认设置之一.我这样说是因为当我在iOS6.0模拟器上测试时,我突然看到微博出现在共享屏幕上,即使我绝对没有在我的模拟器上安装它.

所有微博! :( 悲伤的脸.

所以也许没有办法解决这个问题,除非它通过苹果内置到Safari中.

tom*_*omf 4

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

这是一些文档:

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