8

当用户单击任何 html 网页上的共享按钮时,我正在尝试注册我的应用程序以显示在 Safari 的“打开...”对话框中。

正如许多答案中所建议的那样,我已将public.html(并且public.data为了很好的衡量)内容类型添加到 Xcode 中的文档类型中:(请参阅此问题此问题此苹果文档。)

而且,它似乎有效。如果我在 Safari 中打开 .pdf,我会在顶部看到“在我的应用程序中打开”对话框。我还可以使用其他应用程序中的“打开方式...”对话框与我的应用程序共享文档。

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

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

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

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

悲伤的 Safari 找不到我的应用程序

但是,我希望您注意,这似乎是可能的!看看上面的截图.. 不知何故,微博已经完成了这一壮举。我不知道怎么做,但出于某种原因,即使我的应用程序没有,微博也会出现在这个列表中。

你知道,实际上,考虑到有多少应用程序可能会打开 html 页面,这种做法是有道理的。这是在我的 iOS 设备上运行的 DocInteraction,试图共享一个 html 页面:

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

就在那里!我的应用程序!(它实际上被称为“Wulu Podify”)。但是有这么多的应用程序都渴望 .html 页面,我猜 Safari 认为提供所有这些页面可能有点让人不知所措。

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

微博怎么打不开?

我不确定他们是如何做到的,但也许他们的处理方式有所不同。

微博的“我会打开任何文档-你扔-我-c'mon-try-it-c'mon”的方法可能会解决这个问题,但并不理想。我真的只想打开html页面。

所以。我想我的问题有三个:

  1. 有没有办法让我的应用程序真正出现在 Safari 的“打开方式...”对话框中?
  2. 如果没有,我怎样才能实现微博实现的目标,并出现在所有对话框中?
  3. 我应该这样做吗?似乎这可能是个坏主意。

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


更新:

所以,实际上,我没有意识到这一点,但我认为微博可能是一个内置选项,就像 Facebook 和 Twitter 一样。我以为它就在那里,因为我已经将它安装在我的手机上,但也许它是 iOS6 的默认设置之一。我这么说是因为我在iOS6.0模拟器上测试的时候,突然看到微博出现在分享屏上,虽然我肯定没有安装在我的模拟器上。

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

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

4

3 回答 3

4

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

这是一些文档:

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

于 2015-05-26T14:30:46.470 回答
3

我担心你想要的东西是不可能的。

“共享”对话框和“打开方式”对话框之间存在差异。

对于后者,可以通过文档交互注册您的应用程序,但共享对话框仅提供本机类型(微博是其中之一 - 请参见此处:UIActivityViewController)。

另请参阅 StackOverflow 上的此问题:is-it-possible-to-add-an-app-to-the-native-share-dialog

于 2013-09-25T09:19:36.817 回答
1

其,称为扩展,首先创建一个新项目,然后 --> 文件 -> 新建 -> 目标 -> 应用程序扩展 -> ####

并选择您需要的扩展名并完成....

于 2015-10-07T11:34:20.217 回答