2015-09-29 41 views
8

我正在使用UIActivityViewController共享圖像。 Facebook最近發生變化後。我可以分享圖片和個人網址,但我無法一次分享圖片和網址。相同的代碼適用於郵件,微博等,不知道我缺少的Facebook。Swift UIActivityViewController圖像和Url共享與FB不兼容

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 –

回答

10

我已經修改了你的代碼爲SWIFT 2.0:

@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) 

} 

而且它與發佈URL的圖片。

結果與此代碼:

enter image description here

+0

你的Facebook本地應用程序版本? –

+0

仍然不適合我 –

+0

您的Facebook應用程序更新爲最新版本? –

2

這裏是我的解決方案。實施UIActivityItemSource協議。支持文字,網址和圖片。

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

要共享的圖像和文本

 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) 
相關問題