Совместное использование Instagram, не работающее в iOS 9

Это отлично работает на iOS 8, но на iOS 9 появляется UIDocumentInteractionController с опцией Copy to Instagram. Нажатие на него просто отклоняет контроллер.

Любая обратная связь будет оценена.

Спасибо,

var docController = UIDocumentInteractionController()
 let instagramURL = NSURL(string: "instagram://app")
 if(UIApplication.sharedApplication().canOpenURL(instagramURL!)) {
 var imagePost = cropped
 let fullPath = documentsDirectory().stringByAppendingString("insta.igo")
 var imageData = UIImagePNGRepresentation(imagePost!)!.writeToFile(fullPath, atomically: true)
 let rect = CGRectMake(0, 0, 0, 0)
 self.docController.UTI = "com.instagram.exclusivegram"
 let igImageHookFile = NSURL(string: "file://\(fullPath)")
 self.docController = UIDocumentInteractionController(URL: igImageHookFile!)
 self.docController.presentOpenInMenuFromRect(rect, inView: self.view, animated: true)
 }
 func documentsDirectory() -> String {
 let documentsFolderPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0]
 return documentsFolderPath
}
3 ответа

Я понял это и оставил его здесь, если у кого-то другая проблема.

Способ чтения iOS9 при объявлении "insta.igo" теперь должен иметь "/"

let fullPath = documentsDirectory().stringByAppendingString("/insta.igo")

Полный код

var docController = UIDocumentInteractionController()
let instagramURL = NSURL(string: "instagram://app")
if(UIApplication.sharedApplication().canOpenURL(instagramURL!)) {
 var imagePost = cropped
 let fullPath = documentsDirectory().stringByAppendingString("/insta.igo")
 var imageData = UIImagePNGRepresentation(imagePost!)!.writeToFile(fullPath, atomically: true)
 let rect = CGRectMake(0, 0, 0, 0)
 self.docController.UTI = "com.instagram.exclusivegram"
 let igImageHookFile = NSURL(string: "file://\(fullPath)")
 self.docController = UIDocumentInteractionController(URL: igImageHookFile!)
 self.docController.presentOpenInMenuFromRect(rect, inView: self.view, animated: true)
}
func documentsDirectory() -> String {
let documentsFolderPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0]
return documentsFolderPath

}


схема URL изменилась на iOS 9, вам нужно добавить ключ LSApplicationQueriesSchemes в plist, иначе вызов canOpenURL: не работает и всегда возвращает false, даже если у вас уже установлено приложение.

Вам необходимо обновить файл plist, как показано ниже

<key>LSApplicationQueriesSchemes</key>
<array>
<string>instagram</string>
</array>


Это решение, предоставленное Andy Shephard, работало на меня: qaru.site/questions/713006/...

licensed under cc by-sa 3.0 with attribution.