使用SLRequestreplaceUIActivityViewController twitter发布的操作

我试图分享一个animationGIF,但默认的UIActivityViewController Twitter共享不支持它,它将“缩小”它仍然JPG,我不得不使用SLRequest它在本文中的教导。 缺点是没有预览份额表,用户不能再input自己的信息。

不过,我看到了用户点击Twitter分享表中的“共享”后,似乎使用自定义操作的SteppyPants ,他们如何做到这一点?

换句话说,如何将UIActivityViewController的twitter共享操作replace为包含SLRequest的自定义操作。

我试过的东西:

  • UIActivityItemProvider并检查UIActivityTypePostToTwitter,但是在用户点击twitter之后并在编辑文本之前运行
  • 在UIActivityViewController的completionWithItemsHandler删除刚才twitted后(与仍然GIF),并再次发布与SLRequest,但不太确定,如果我可以删除旧的post,而且它为用户消耗networking带宽
  • SLComposeViewController,不支持animationGIF上传,不支持自定义共享操作

PS我是iOS的新手

UIActivityViewController共享选项 将自定义操作替换为分享表

UIActivityItemProvider并检查UIActivityTypePostToTwitter,但是在用户点击twitter之后并在编辑文本之前运行

这非常接近!

我相信牛仔裤正在做你说的话; 向UIActivityItemProvider提供一个UIActivityItemProvider ,但有一个扭曲。

UIActivityItemProvideritem方法被调用时,它会检查UIActivityType是否是UIActivityTypePostToTwitter ,如果是这样的话, UIActivityViewController被解散,并提供一个自定义的SLComposeServiceViewController

如果仔细观察,可以看到:所呈现的视图控制器没有标题,而剩余的字符数不能正确响应URL。 SLComposeServiceViewController对象然后实现didSelectPost来展示一个微调器UI,同时它启动一个SLRequest