Ios UIDocumentInteractionController不';我不能用Instagram
我需要向Instagram共享一个图像文件,根据Instagram文档:,我可以使用文档交互来实现这一点,但它就是不起作用。这是我的密码:Ios UIDocumentInteractionController不';我不能用Instagram,ios,swift,instagram,uidocumentinteraction,Ios,Swift,Instagram,Uidocumentinteraction,我需要向Instagram共享一个图像文件,根据Instagram文档:,我可以使用文档交互来实现这一点,但它就是不起作用。这是我的密码: let img = UIImage(named: "test.jpg") let kInstagramURL = URL(string: "instagram://") let kUTI = "com.instagram.exclusivegram" // testing "com.instagram.phot
let img = UIImage(named: "test.jpg")
let kInstagramURL = URL(string: "instagram://")
let kUTI = "com.instagram.exclusivegram" // testing "com.instagram.photo" too
let instagramCaption = "TESTING"
let kfileNameExtension = "instagram.igo" // testing "jpg"/"ig" too
if UIApplication.shared.canOpenURL(kInstagramURL!) {
let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
if urls.count == 0 {
print("Not found")
return
}
let url = urls[0].appendingPathComponent(kfileNameExtension)
print("URL", url)
// OUPUT: file:///var/mobile/Containers/Data/Application/F14B18CB-5CD4-47AD-8257-E2288C23181E/Documents/instagram.igo
do {
try UIImageJPEGRepresentation(img!, 1.0)?.write(to: url, options: .atomic)
print("WRITEN", url) // Written successfully, no error
} catch {
//TODO: issue error on UI
print("WRITE ERROR: \(error)")
}
let documentInteractionController = UIDocumentInteractionController(url: url)
var rect = CGRect.zero
let view = self.view
documentInteractionController.delegate = DocInteractionResponder() // tried nil, same result
documentInteractionController.uti = kUTI
// adding caption for the image
documentInteractionController.annotation = ["InstagramCaption": instagramCaption]
documentInteractionController.presentOpenInMenu(from: rect, in: view!, animated: true)
}
else {
//TODO: warn from dialog
}
我在这个代码片段中尝试了很多东西(参见注释),但结果是一样的:在我点击菜单中的instagram后,什么都没有发生
我认为这可能是由我的应用程序中的其他代码引起的,所以我创建了一个空白应用程序(带有一个简单的UIViewController),并将此代码放入。它不起作用
我已经阅读了几乎所有与UIDocumentInteractionController
相关的答案
这种事发生在你身上吗?这是iOS 11(刚刚升级了我的手机)的问题,还是Instagram停止支持文档交互?我今天遇到了同样的问题,我可以通过在视图控制器中将
UIDocumentInteractionController
声明为类级属性来解决,防止它过早地被释放。我今天遇到了同样的问题,我能够通过在视图控制器中将UIDocumentInteractionController
声明为类级属性来解决它,以防止它过早地被释放。与您的问题无关,但值得一提。要从文档中检查集合是否为空,请使用其isEmpty属性,而不是将计数与零进行比较。除非集合保证随机访问性能,否则计算计数可以是O(n)操作。复杂性:O(1)如果集合符合RandomAccessCollection;否则,O(n),其中n是集合的长度。下面是一个关于如何将任何文件类型共享到任何应用程序(包括iOS 11.0.2的Instagram)的示例@LeoDabus感谢您的提示。但是你答案中的密码对我不起作用。奇怪…代码不起作用是模糊的。我从来没有测试过使用它来分享到一个单一的应用程序,但它确实显示了Instagram为我在我的网站App@CoderACJHP与你的问题无关,但值得一提。要从文档中检查集合是否为空,请使用其isEmpty属性,而不是将计数与零进行比较。除非集合保证随机访问性能,否则计算计数可以是O(n)操作。复杂性:O(1)如果集合符合RandomAccessCollection;否则,O(n),其中n是集合的长度。下面是一个关于如何将任何文件类型共享到任何应用程序(包括iOS 11.0.2的Instagram)的示例@LeoDabus感谢您的提示。但是你答案中的密码对我不起作用。奇怪…代码不起作用是模糊的。我从来没有测试过使用它来分享到一个单一的应用程序,但它确实显示了Instagram为我在我的网站App@CoderACJHP不,这也帮我修好了,谢谢你把我的头发拔出来!这也帮我修好了,谢谢你把我的头发拔出来!