是否可以从App共享图片到Instagram故事

时间:2019-03-07 07:46:10

标签: swift react-native

现在,我正在开发iOS,Android应用程序。我希望添加一个功能,可以轻松地将我的应用程序中的图像直接共享到Instagram Story。例如,在我的应用程序上点击按钮,然后过渡到Instagram Story,用户可以在Story上共享。

我搜索了一些API,但没有找到一个好的方法。请告诉我可以开发这种功能。

2 个答案:

答案 0 :(得分:0)

 @IBAction func shareOnInstagram(_ sender: Any) {

    DispatchQueue.main.async {

        //Share To Instagram:
        let instagramURL = URL(string: "instagram://app")
        if UIApplication.shared.canOpenURL(instagramURL!) {

            let imageData = UIImageJPEGRepresentation(image, 100)
            let writePath = (NSTemporaryDirectory() as NSString).appendingPathComponent("instagram.igo")

            do {
                try imageData?.write(to: URL(fileURLWithPath: writePath), options: .atomic)
            } catch {
                print(error)
            }

            let fileURL = URL(fileURLWithPath: writePath)
            self.documentController = UIDocumentInteractionController(url: fileURL)
            self.documentController.delegate = self
            self.documentController.uti = "com.instagram.exlusivegram"

            if UIDevice.current.userInterfaceIdiom == .phone {
                self.documentController.presentOpenInMenu(from: self.view.bounds, in: self.view, animated: true)
            } else {
                self.documentController.presentOpenInMenu(from: self.IGBarButton, animated: true)
            }
        } else {
            print(" Instagram is not installed ")
        }
    }
}

您可以使用上述代码共享给Instagram,并且需要在项目的instagram的{​​{1}}中设置LSApplicationQueriesSchemes

答案 1 :(得分:0)

try this:-

   let fetchOptions = PHFetchOptions()
    fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
    let fetchResult = PHAsset.fetchAssets(with: .image, options: fetchOptions) //.image to share image and .video to share video

    if let lastAsset = fetchResult.firstObject {
        let localIdentifier = lastAsset.localIdentifier
        let u = "instagram://library?LocalIdentifier=" + localIdentifier
        let url = NSURL(string: u)!
        if UIApplication.shared.canOpenURL(url as URL) {
            UIApplication.shared.open(URL(string: u)!, options: [:], completionHandler: nil)
        } else {

            let urlStr = "https://itunes.apple.com/in/app/instagram/id389801252?mt=8"
            if #available(iOS 10.0, *) {
                UIApplication.shared.open(URL(string: urlStr)!, options: [:], completionHandler: nil)

            } else {
                UIApplication.shared.openURL(URL(string: urlStr)!)
            }
        }

    }