앱 내에서 어떤 사진을 인스타그램 스토리에 바로 올릴 수 있는 기능을 구현해보도록 하겠습니다 :)
우선 스토리보드에 이미지 한장과 버튼 하나를 넣어놓도록 하겠습니다.
여기서 버튼을 누르면 저 이미지가 인스타그램 스토리에 공유되는 방식입니다 :)
인스타그램 스토리 share 작동 순서
Info.plist에서 위와 같이
인스타그램 custom URL 스키마를 화이트리스트에 추가해줍니다.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var sharingImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBAction func shareToInstaStories(_ sender: Any) {
if let storiesUrl = URL(string: "instagram-stories://share") {
if UIApplication.shared.canOpenURL(storiesUrl) {
// 위의 sharingImageView의 image를 image에 저장
guard let image = sharingImageView.image else { return }
// 지원되는 형식에는 JPG,PNG 가 있다.
guard let imageData = image.pngData() else { return }
let pasteboardItems: [String: Any] = [
"com.instagram.sharedSticker.stickerImage": imageData,
// 배경 값 : 두 값이 다르면 그래디언트를 생성
"com.instagram.sharedSticker.backgroundTopColor": "#636e72",
"com.instagram.sharedSticker.backgroundBottomColor": "#b2bec3"
]
let pasteboardOptions = [
UIPasteboard.OptionsKey.expirationDate: Date().addingTimeInterval(300)
]
UIPasteboard.general.setItems([pasteboardItems], options: pasteboardOptions)
UIApplication.shared.open(storiesUrl, options: [:], completionHandler: nil)
} else {
print("User doesn't have instagram on their device.")
}
}
}
}
아이패드로 실행시켜 다소 화면이 작은 점 이해 부탁드려요!!!