버튼을 클릭하면 스크린 샷을 만든 다음 Twitter, Instagram 및 Facebook에서이 사진을 공유 할 수있는 기능을 작성했습니다. 그래서 나는 인스 타 그램을 제외한 모든 앱에 대한 기능이 있습니다Swift에서의 소셜 공유
func socialShare(sharingText: String?, sharingImage: UIImage?) {
var sharingItems = [AnyObject]()
if let text = sharingText {
sharingItems.append(text as AnyObject)
}
if let image = sharingImage {
sharingItems.append(image)
}
let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityType.addToReadingList, UIActivityType.print, UIActivityType.assignToContact, UIActivityType.copyToPasteboard]
self.present(activityViewController, animated: true, completion: nil)
}
을 그리고 인스 타 그램 공유를위한 기능도 :
var docController: UIDocumentInteractionController!
func documentsDirectory() -> String {
return NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
}
func postImageToInstagram(sharingImage: UIImage?) {
let instagram = URL(string: "instagram://app")!
if UIApplication.shared.canOpenURL(instagram) {
let imageURL = URL(fileURLWithPath: documentsDirectory())
let fullPath = imageURL.appendingPathComponent("instagram.igo")
do {
try UIImagePNGRepresentation(sharingImage!)!.write(to: fullPath)
let rect = CGRect(x: 0, y: 0, width: 0, height: 0)
let igImageHookFile = URL(string: "file://\(fullPath)")
docController = UIDocumentInteractionController(url: igImageHookFile!)
docController.uti = "com.instagram.photo"
docController.presentOpenInMenu(from: rect, in: self.view, animated: true)
} catch {
print(error)
}
}
else {
print("Instagram not installed")
}
}
내가 함께 사용할 수 있습니까? 그들은 단지 별도로 작동하기 때문에 ...
'UIActivityViewController'에 주어진 'activityItems'에 'UIImage' 만 있고 텍스트가 아니라면 Instagram이 공유 옵션에 나타납니다. –