我可以从UIActivityViewController和原生的UIActivityTypePostToTwitter发送动画GIF吗?

ori*_*ike 6 twitter objective-c animated-gif ios uiactivityviewcontroller

我有一个UIActivityViewController共享一个对象

  • 符合UIActivityItemSource协议和
  • 通过返回NSURL.gif文件和CFBridgingRelease(kUTTypeGIF)相应的方法提供动画GIF文件.

如果我在新邮件中共享一个对象,我会看到GIF在模拟器中移动.如果我尝试发推文相同的内容,图片的一个框架会附加到推文上,但它会作为静止图像上传.

我是否需要等待Apple UIActivityTypePostToTwitter在未来的iOS版本中更新,或者我错过了您在某处看到的解决方法?(我意识到这个案例没有使用"Twitter.com,Android和iPhone [app]"列表中的任何内容.这可能是徒劳的.)

家庭作业已经完成:

  • 我知道Twitter活动类型也可以与ALAsset对象一起使用,并且人们通过保持他们的数据包含在ALAssets中来获取GIF动画进出保存的照片,但我希望能够在不触及相机胶卷的情况下发送这些GIF动画, 如果可能的话.
  • 我检查了NSHipster.
  • 我尝试在Lyndsey关于Twitter API的提示上返回一个NSData对象而不是NSURL我的本地.gif文件.没变.
  • 我试图返回kUTTypeData,而不是kUTTypeGIF作为dataTypeIdentifierForActivityType在看到这个之后,Twitter的API文档:

    传递的图像应该是图像或二进制base64编码的原始二进制文件,只要Content-Type设置得恰当(当有疑问时:"application/octet-stream"),就不需要编码或转义内容.

    但是我的推文中没有出现任何图片.

谢谢!

Lyn*_*ott 0

正如Twitter API的“参数”下所列:

image:个人资料的背景图像,base64 编码。必须是大小小于 800 KB 的有效 GIF、JPG 或 PNG 图像。宽度大于2048像素的图片将被强制缩小。图像必须作为原始多部分数据提供,而不是 URL。

  • 感谢您的挖掘,林赛。这些大小限制不适用于推文图像,但有可能“原始数据”是一个提示,我尝试将 UIActivityItem 作为 NSData 对象而不是 NSURL 提供,但同样的事情发生:Twitter 上传静态图像。我的理解是,“UIActivityTypePostToTwitter”的存在是为了抽象 Twitter API 的要求,而且它还没有准备好用于动画 GIF。 (2认同)