2015-09-29 14 views
8

ile çalışmıyor. Facebook son değişikliklerden sonra. Bir görüntüyü ve URL'yi tek tek paylaşabiliyorum ancak hem görüntü hem de URL'yi aynı anda paylaşamıyorum. Aynı kod Mail, twitter vb. Ile iyi çalışıyor, Facebook için ne kaçırdığımı bilmiyorum.Swift UIActivityViewController Görüntü & URL bunu paylaş görüntüyü paylaşmak için UIActivityViewController kullanıyorum FB

@IBAction func shareButtonPressed(sender: AnyObject) { 

    let myWebsite = NSURL(string:"http://www.google.com/") 
    let img: UIImage = image! 

    guard let url = myWebsite else { 
     print("nothing found") 
     return 
    } 

    let shareItems:Array = [img, url] 
    let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil) 
    activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo] 
    self.presentViewController(activityViewController, animated: true, completion: nil) 

} 

Ve URL ile bir resim gönderme olduğu:

func shareImage() { 
    var myWebsite = NSURL(string:"http://www.google.com/") 
    var img: UIImage = currentPhoto! 
    var shareItems:Array = [img, myWebsite] 
    let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil) 
    activityViewController.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypePostToWeibo, UIActivityTypeCopyToPasteboard, UIActivityTypeAddToReadingList, UIActivityTypePostToVimeo] 
    self.presentViewController(activityViewController, animated: true, completion: nil) 

} 
+0

https://iosdevcenters.blogspot.com/2017/08/how-to-share-content -with.html –

cevap

10

Ben hızlı 2.0 için kodunu değiştirmiş. Bu kod ile

Sonuç:

enter image description here

+0

Facebook yerel App sürümü? –

+0

hala benim için çalışmıyor –

+0

facebook uygulaması son sürümü ile güncellenir? –

2

İşte benim çözümdür. UIActivityItemSource protokolünü uygulayın. Destek metni, URL ve resim.

func doShare() { 
    let viewController = UIActivityViewController(activityItems: ["ScreenSort for iOS.", URL.init(string: "https://itunes.apple.com/app/id1170886809")!], applicationActivities: nil) 
    viewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash 
    self.present(viewController, animated: true, completion: nil) 
} 

extension YourViewController: UIActivityItemSource { 
    func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any { 
     return "" 
    } 

    func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivityType) -> Any? { 
     return URL.init(string: "https://itunes.apple.com/app/id1170886809")! 
    } 

    func activityViewController(_ activityViewController: UIActivityViewController, subjectForActivityType activityType: UIActivityType?) -> String { 
     return "ScreenSort for iOS: https://itunes.apple.com/app/id1170886809" 
    } 

    func activityViewController(_ activityViewController: UIActivityViewController, thumbnailImageForActivityType activityType: UIActivityType?, suggestedSize size: CGSize) -> UIImage? { 
     return nil 
    } 
} 
1

resim ve metin paylaşmak için

 let imgShare : UIImage = UIImage(named: "store")! 
     let textToShare = "Image form My app." 

     let objectsToShare = [textToShare, imgShare] 
     let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil) 

     activityVC.popoverPresentationController?.sourceView = sender 
     self.presentViewController(activityVC, animated: true, completion: nil) 
3

SWIFT 3

let myWebsite = NSURL(string: visitedlink) 

    let img: UIImage = UIImage(named:"Logo")! 

    guard let url = myWebsite else { 
     print("nothing found") 
     return 
    } 

    let shareItems:Array = [img,url] 
    let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil) 
    activityViewController.excludedActivityTypes = [UIActivityType.print, UIActivityType.postToWeibo, UIActivityType.copyToPasteboard, UIActivityType.addToReadingList, UIActivityType.postToVimeo] 
    self.present(activityViewController, animated: true, completion: nil) 
İlgili konular