Instagram 文档中似乎没有提到这种方法。但是,我刚刚确认@sabiland 的答案在 Swift 4.2 iOS 12 中仍然有效。这是一些示例代码:
func postImageToInstagram(image: UIImage) {
UIImageWriteToSavedPhotosAlbum(image, self, #selector(self.image(image:didFinishSavingWithError:contextInfo:)), nil)
}
@objc func image(image: UIImage, didFinishSavingWithError error: NSError?, contextInfo: UnsafeRawPointer) {
if let err = error {
print(err)
}
let urlString = "instagram://library?AssetPath=assets-library"
let url = URL(string: urlString)!
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
let alertController = UIAlertController(title: "Error", message: "Instagram is not installed", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alertController, animated: true, completion: nil)
}
}
原始代码源
您还必须确保您info.plist
有 instagram 查询方案。
为了让您的应用程序使用 Instagram 的自定义 URL 方案,您必须通过将 instagram:// 添加到应用程序 Info.plist 中的 LSApplicationQueriesSchemes 键来将该方案列入白名单。
资源