Search code examples
swiftios9instagramios10url-scheme

iOS10 swift 2.2 share on Instagram openURL& canOpenURL change


Im working with the function of sharing photos to Instagram with swift 2.2 and it works on iOS9 but failed with iOS10, is there any difference between iOS9 and iOS10 ? Here is how I achieve it on iOS9, thanks for any advices.

class viewController: UIViewController, UIDocumentInteractionControllerDelegate {

var yourImage: UIImage?
var documentController: UIDocumentInteractionController!

func shareToInstagram() {

 let instagramURL = NSURL(string: "instagram://app")

        if (UIApplication.sharedApplication().canOpenURL(instagramURL!)) {

            let imageData = UIImageJPEGRepresentation(yourImage!, 100)

            let captionString = "caption"

       let writePath = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("instagram.igo")
       if imageData?.writeToFile(writePath, atomically: true) == false {

                return

            } else {
 let fileURL = NSURL(fileURLWithPath: writePath)

                self.documentController = UIDocumentInteractionController(URL: fileURL)

                self.documentController.delegate = self

                self.documentController.UTI = "com.instagram.exlusivegram"

                self.documentController.annotation = NSDictionary(object: captionString, forKey: "InstagramCaption")
                      self.documentController.presentOpenInMenuFromRect(self.view.frame, inView: self.view, animated: true)

            }

        } else {
            print(" Instagram isn't installed ")
        }
    }

Solution

  • Problem solved , just update to xcode8 and using swift2.3.