5

从第一天起,我就被告知每个第三方 iOS 应用程序都被完美地沙盒化,因此第三方应用程序除了一些预定义的 url 之外无法将消息传输到另一个应用程序。

但是这个由100 台相机合二为一的发送到 Instagram技巧刚刚引起了我的注意。当用户触发这个动作时,他立即从100 Cameras in 1跳转到 Instagram(这没问题,可以通过上面提到的 url 技巧轻松实现。)但是,有趣的是 Instagram 会显示刚刚处理的图像100 相机合 1就好像它正在显示来自自己的沙箱的图像。

我知道 Cocoa Touch 必须有一些 API 来支持这一点。我的问题是,它们是什么?它们是否仅限于图像?

提前非常感谢。

编辑:我知道有 Cocoa Touch URL 方案的东西,但如果是 url 方案成功了...... url 方案必须包含指向图像的指针/引用的信息。否则,即使我们从 100 台相机中跳到 Instagram,Instagram 也无法访问该图像。

编辑(第二次):虽然我还没有尝试过,但汤姆 H 的回答可能最终会导致解决方案。所以我接受了他的回答作为最终的回答。至于 unset 的回答,unset 一直在提到 url 方案的事情(但是伙计,我们都知道这一点。让我们感到困惑的不是应用程序之间通过调用 url 切换。Instagram 是如何从另一个应用程序访问该图像的让我们感到困惑。)由于 unset 的答案没有提供太多有用的信息,并且从未直接回答我的问题,因此我对他的回答投了反对票,我建议那些投票赞成的人相应地调整你的投票。Stack Overflow 是一个很棒的地方,因为我们几乎总是可以得到中肯的答案,而不是因为有些人的答案没有错,但从来没有真正中肯。

已编辑(第 3 次)官方 Instagram 开发者页面现在提供了官方解决方案。

如果您的应用程序创建了照片,并且您希望您的用户使用 Instagram 共享这些照片,您可以使用文档交互 API 在 Instagram 的共享流程中打开您的照片。

您必须首先将文件保存为 PNG 或 JPEG(首选)格式并使用文件扩展名“.ig”。使用 iOS 文档交互 API,您可以触发 Instagram 打开照片。我们的文档交互 UTI 的标识符是 com.instagram.photo,它符合 public/jpeg 和 public/png UTI。有关详细信息,请参阅 Apple 文档文章:预览和打开文件和 UIDocumentInteractionController 类参考。

触发后,Instagram 将立即向用户展示我们的过滤屏幕。该图像已为 Instagram 预加载和调整大小。除了使用上述适当的图像格式外,我们唯一的要求是图像至少为 612 像素高和/或宽。为获得最佳效果,Instagram 更喜欢打开 612 像素 x 612 像素正方形的 JPEG。如果图像较大,它将动态调整大小。

重要提示:如果图像的任一尺寸小于 612 像素,Instagram 将向用户显示我们无法打开文件的警报。我们目前的政策是不将图像放大或拉伸到我们的最小尺寸。

4

3 回答 3

5

如果有人感兴趣,这里是做这件事所需的实际文档:

http://instagram.com/developer/iphone-hooks/

于 2011-06-14T03:10:10.843 回答
3

Instagram 已注册URL 方案 instagram://(在您的 iPhone safari 中输入“instagram://something”并点击“打开”)。也许您的应用已经发现了将图像发送到 Instagram 的格式——<a href="http://instagram.com/developer/" rel="nofollow">或者 Instagram 提供了文档化的 API。

对于可能的参数,请查看这篇文章

于 2011-06-01T07:31:02.010 回答
2

我认为正在发生的事情(或可能发生的事情,也谢谢安吉洛)首先是:

100 Cameras in 1 将图像保存到 Photos.app。
然后,它将图像的名称/文件名/路径传递给 Instagram(通过 url 方案)。
然后,Instagram 从 Photos.app 中检索照片并将其加载。

除了图像之外,可能没有其他方法可以做到这一点,但是如果您查看 UIDocumentInteractionController 类,它可以让您在一定程度上在其他应用程序中打开文件。

于 2011-06-01T08:33:02.927 回答