我正在尝试注册我的应用程序,以便当用户单击 html 网页上的共享按钮时,它会显示在 Safari“打开方式...”对话框中。
我已经添加了public.html
(and public.data
为了更好地衡量)内容类型到 Xcode 中的文档类型,如许多答案中所建议的:(请参阅这个问题, 这个问题, or 这个苹果文档.)
而且,它似乎有效。如果我在 Safari 中打开 .pdf,我会在顶部看到“在我的应用程序中打开”对话框。
我还可以使用其他应用程序中的“打开方式...”对话框与“我的应用程序”共享文档。
为了测试它,我构建了文档交互按照推荐在这个答案中,如果我创建一个 html 文件,我的应用程序将显示在共享对话框中。
但是,“我的应用程序”仍然没有显示在 Safari 的共享对话框中。
当我在 iOS 模拟器上的 iOS7 中运行它时,我只显示 Mail、Twitter 和 Facebook:
当我在真实的 iOS 设备上测试时也是如此:
但是,我希望您注意,这似乎确实是可能的!看上面的截图..不知何故,微博已经做到了这一壮举。我不知道如何,但由于某种原因,微博出现在这个列表中,尽管我的应用程序没有出现。
事实上,考虑到有多少应用程序可以打开 html 页面,这种做法是有道理的。以下是在我的 iOS 设备上运行的 DocInteraction,尝试共享 html 页面:
就在那里!我的应用程序! (它实际上被称为“Wulu Podify”)。但是有很多应用程序都渴望 .html 页面,我想 Safari 认为提供所有这些页面可能有点难以承受。
但是,这仍然引出了一个问题,微博是如何进入该名单的?但是,进一步的挖掘似乎表明,实际上微博似乎已经出现在每个列表中。
我不确定他们是如何做到的,但也许他们的处理方式有所不同。
微博的“我会打开任何文档,你扔给我来吧,来吧,来吧”的做法可能会解决这个问题,但并不理想。我真的只想打开html页面。
所以。我想我的问题有三个:
- 有没有办法让我的应用程序真正显示在 Safari 的“打开方式...”对话框中?
- 如果没有,我怎样才能实现微博所实现的目标,并出现在所有对话框中?
- 我应该这样做吗?看来这可能是个坏主意。
谢谢你的帮助!我已经从事这个有一段时间了!
Update:
所以,实际上,我没有意识到这一点,但我认为微博可能是一个内置选项,就像 Facebook 和 Twitter 一样。我以为它就在那里,因为我把它安装在我的手机上,但也许它是 iOS6 的默认设置之一。我这么说是因为当我在iOS6.0模拟器上测试时,我突然看到微博出现在分享屏幕上,尽管我肯定没有在我的模拟器上安装它。
所以也许除了苹果将其内置到 Safari 中之外没有其他办法解决这个问题。