как делиться контентом в facebook, twitter и instagram с помощью SLComposeViewController swift

Я хочу быстро делиться контентом и изображениями в социальных сетях с помощью SLComposeViewController. Я также сделал это в objC, но я новичок в быстрой разработке. Пожалуйста, предложите мне, есть ли какой-либо общий класс для этой или любой библиотеки для быстрого обмена контентом в социальных сетях.


person Vvk    schedule 08.02.2016    source источник


Ответы (3)


Нет необходимости в библиотеке. Что вам нужно сделать, это:

1) Просто импортируйте фреймворк Social.

2) Код для публикации на Facebook

let vc = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
vc.setInitialText("Picture Text")
vc.addImage(detailImageView.image!)
vc.addURL(NSURL(string: "http://anyurl.com"))
presentViewController(vc, animated: true, completion: nil)

3) Код для публикации в Твиттере

let vc = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
vc.setInitialText("Picture Text")
vc.addImage(detailImageView.image!)
vc.addURL(NSURL(string: "http://anyurl.com"))
presentViewController(vc, animated: true, completion: nil)
person Sohil R. Memon    schedule 08.02.2016

Источник: https://www.youtube.com/watch?v=B_x-ccc8Iuc< /а>

import UIKit
import Social

class ViewController: UIViewController {

@IBAction func buttonAction(_ sender: Any) //Add Storyboard a button
{
    //Alert
    let alert = UIAlertController(title: "Share", message: "Share the poem of the day!", preferredStyle: .actionSheet)

    //First action
    let actionOne = UIAlertAction(title: "Share on Facebook", style: .default) { (action) in

        //Checking if user is connected to Facebook
        if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeFacebook)
        {
            let post = SLComposeViewController(forServiceType: SLServiceTypeFacebook)!

            post.setInitialText("Poem of the day")
            post.add(UIImage(named: "img.png"))

            self.present(post, animated: true, completion: nil)

        } else {self.showAlert(service: "Facebook")}
    }

    //Second action
    let actionTwo = UIAlertAction(title: "Share on Twitter", style: .default) { (action) in

        //Checking if user is connected to Facebook
        if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeTwitter)
        {
            let post = SLComposeViewController(forServiceType: SLServiceTypeTwitter)!

            post.setInitialText("Poem of the day")
            post.add(UIImage(named: "img.png"))

            self.present(post, animated: true, completion: nil)

        } else {self.showAlert(service: "Twitter")}
    }

    let actionThree = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)

    //Add action to action sheet
    alert.addAction(actionOne)
    alert.addAction(actionTwo)
    alert.addAction(actionThree)

    //Present alert
    self.present(alert, animated: true, completion: nil)
}

func showAlert(service:String)
{
    let alert = UIAlertController(title: "Error", message: "You are not connected to \(service)", preferredStyle: .alert)
    let action = UIAlertAction(title: "Dismiss", style: .cancel, handler: nil)

    alert.addAction(action)
    present(alert, animated: true, completion: nil)
}


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
 }
}
person Yakup Ad    schedule 29.06.2017

Класс UIActivityViewController предоставляет возможность совместного использования в любом месте.

Мы можем поделиться контентом в facebook и twitter, но для публикации instagram мы должны использовать UIActivityViewController.

Импорт социальных лайков

import Social

Facebook: общий доступ с изображением, содержимым и URL-адресом.

@IBAction func facebookButtonShare(_ sender: Any) {
if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeFacebook) {

    let facebookShare = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
    if let facebookShare= facebookShare{
        facebookShare.setInitialText("Excellent development")
        facebookShare.add(UIImage(named: "myProduct.jpg")!)
        facebookShare.add(URL(string: "https://stackoverflow.com/users/4600136/mr-javed-multani?tab=profile"))
        self.present(facebookShare, animated: true, completion: nil)
    }
} else {
      print("Not Available")
}
}

Twitter: поделитесь с изображением, содержимым и URL-адресом.

@IBAction func tweetButtonShare(_ sender: Any) {
if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeTwitter) {

    let tweetShare = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
    if let tweetShare = tweetShare {
        tweetShare.setInitialText("Excellent development")
        tweetShare.add(UIImage(named: "iOS.jpg")!)
        tweetShare.add(URL(string: "https://stackoverflow.com/users/4600136/mr-javed-multani?tab=profile"))
        self.present(tweetShare, animated: true, completion: nil)
    }
} else {
      print("Not Available")
}
}

введите здесь описание изображения введите здесь описание изображения

person Mr.Javed Multani    schedule 09.03.2018