Instagram 共享以供 iOS 不工作(UIDocumentInteractionController)

Posted

技术标签:

【中文标题】Instagram 共享以供 iOS 不工作(UIDocumentInteractionController)【英文标题】:Instagram Sharing to Feed iOS not working (UIDocumentInteractionController) 【发布时间】:2020-11-25 11:33:43 【问题描述】:

ios 14.2,我无法按照https://developers.facebook.com/docs/instagram/sharing-to-feed/ 中的说明分享图片

我可以通过这个菜单正确地将相同的图像分享给任何其他应用程序(例如电报)

代码:

func shareToInstagramFeed() 
    let instagramURL = NSURL(string: "instagram://")

    if UIApplication.shared.canOpenURL(instagramURL! as URL) 
        let jpgPath = (NSTemporaryDirectory() as NSString).appendingPathComponent("instagram.ig")
        do 
            try selectedImage.image?.jpegData(compressionQuality: 1)?.write(to: URL(fileURLWithPath: jpgPath), options: .atomic)
         catch 
            print(error)
        
        let rect = CGRect.zero
        
        documentInteractionController = UIDocumentInteractionController(url: URL(fileURLWithPath: jpgPath))
        documentInteractionController.delegate = self
        documentInteractionController.uti = "com.instagram.photo"
        documentInteractionController.presentOpenInMenu(from: rect, in: view, animated: true)
    

分享菜单:

Instagram 错误:

【问题讨论】:

我也遇到了同样的问题,你找到解决办法了吗? 这里有同样的问题。非常令人沮丧。除 Instagram 外,其他所有选项都适用 【参考方案1】:

我为此苦苦挣扎,最终使用了 UIActivityViewController 并且它起作用了。

 let items = [image]
    let ac = UIActivityViewController(activityItems: items, applicationActivities: nil)
    present(ac, animated: true)

【讨论】:

【参考方案2】:

在 Instagram 版本 171.0 中,此问题已得到修复。它可以工作,但很丑,你不能选择故事或提要,也不能编辑照片。

我相信instagram的功能会让这个功能变得更好。

如果您只需要共享一张图片,您可以使用此解决方法:

let ac = UIActivityViewController(activityItems: [imageUrl, imageUrl], applicationActivities: nil)
present(ac, animated: true)

(imageUrl 故意输入 2 次) 然后你会得到以下屏幕:

【讨论】:

以上是关于Instagram 共享以供 iOS 不工作(UIDocumentInteractionController)的主要内容,如果未能解决你的问题,请参考以下文章

分享后如何从 Instagram 应用重定向到我的 iOS 应用

部署 JSF 复合组件以供共享使用

从 iOS 将视频分享到 Instagram 源

Instagram ios14故事分享黑屏

使用意图的 Android 6.0 instagram 图像共享不起作用

通过您自己的 iOS 应用程序将照片上传到 Instagram