Share on Facebook IOS 11 Swift

11,831

Solution 1

You can use the facebook sdk to share content Like

Step 1:

install pod :- pod 'FacebookShare'

Step 2:

import FBSDKShareKit

Step 3:

func shareTextOnFaceBook() {
    let shareContent = ShareLinkContent()
    shareContent.contentURL = URL.init(string: "https://developers.facebook.com")! //your link
    shareContent.quote = "Text to be shared"
    ShareDialog(fromViewController: self, content: shareContent, delegate: self).show()
}

func sharer(_ sharer: Sharing, didCompleteWithResults results: [String : Any]) {
    if sharer.shareContent.pageID != nil {
        print("Share: Success")
    }
}
func sharer(_ sharer: Sharing, didFailWithError error: Error) {
    print("Share: Fail")
}
func sharerDidCancel(_ sharer: Sharing) {
    print("Share: Cancel")
}

Step 4: Must add this in Info.plist

<key>LSApplicationQueriesSchemes</key>
<array>
        <string>fbauth2</string>
</array>

Solution 2

All of social constants (facebook, twitter, LinkedIn and others) have been deprecated on iOS 11 .

See here: https://developer.apple.com/documentation/social/social_constants

You can use the FBSDKShareKit for the sharing function on facebook.

https://developers.facebook.com/docs/sharing/ios/

Share:
11,831
Admin
Author by

Admin

Updated on June 13, 2022

Comments

  • Admin
    Admin almost 2 years

    In versions below 11 ShareButton to facebook works successfull, but in 11 version this function doesn't work. What can u advice?

    if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeFacebook) {
            var vc: SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
            vc.setInitialText("My text")
            self.present(vc, animated: true, completion: nil)
        }