Как поделиться текстом метки из приложения iPhone в Facebook?

Я написал простой проект XCode в быстром для моего iPhone . Я пытаюсь отправить текст своего ярлыка на Facebook, используя опцию "Поделиться на Facebook".

Ниже мой код

 import UIKit
import Social

class ViewController: UIViewController {

  @IBOutlet weak var musicDescription: UILabel!

  override func viewDidLoad() {
    super.viewDidLoad()

  }

  @IBAction func faceBookShareButton(sender: UIButton) {
    if SLComposeViewController.isAvailableForServiceType(SLServiceTypeFacebook) {
      let fbShare:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)

      let text = musicDescription.text

      fbShare.setInitialText(text)


      self.presentViewController(fbShare, animated: true, completion: nil)

    } else {
      let alert = UIAlertController(title: "Accounts", message: "Please login to a Facebook account to share.", preferredStyle: UIAlertControllerStyle.Alert)

      alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil))
      self.presentViewController(alert, animated: true, completion: nil)
    }

  }

}

Но я не могу увидеть текст ярлыка на моей временной шкале в Facebook. Кто-то ведет меня сюда. Почему текст не публикуется в Facebook?

Изменить: Обновление Я скачал файлы FBSDK и добавил их в свой проект. Я импортировал FBSDKShareKit в мой файл ViewController.h.

Вот мой код

 @IBAction func faceBookShareButton(sender: UIButton) {



 if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb:")!) {
  var content: FBSDKShareLinkContent = FBSDKShareLinkContent()

  var Subject: String = String(format: "FBSDKShareKit is an alternative to this issue")

  content.contentTitle = "FBSDKShareKit"
  content.contentDescription = Subject

  var dialog: FBSDKShareDialog = FBSDKShareDialog()
  dialog.fromViewController = self
  dialog.shareContent = content
  dialog.mode = FBSDKShareDialogModeWeb
  dialog.show()
}

Я получаю сообщение об ошибке "Использование неразрешенного идентификатора FBSDKShareDialogModeWeb" . Кто-нибудь, помогите, пожалуйста!

2 ответа

Вы должны проверить возвращаемое значение setInitialText(_:) метод.

Эта функция может вернуть false, Документ Apple описывает следующее.

Возвращаемое значение

Возвращает логическое значение, указывающее, был ли текст успешно задан.

  1. Использование FBSDKShareKit не является полной альтернативой, но помогает отображать предварительно заполненный контент на экране диалога общего доступа.

  2. Для базовой проверки перейдите по ссылке cocoapods. Откройте ваш терминал и установите cocoapods.

    $ sudo gem install cocoapods

    1. откройте каталог вашего проекта, например: cd / desktop / TestSwift,

    2. Затем, чтобы создать файл pod в вашем проекте после открытия директории проекта, добавьте следующую строку pod init это создаст подфайл внутри вашего проекта

    3. Откройте подфайл в TextEdit из finder.to установить FBSDK добавить pod 'FBSDKShareKit' весь подфайл будет выглядеть так

      platform :ios, '8.0'
      use_frameworks!
      
      target 'TestSwift' do
      
         pod 'FBSDKShareKit','~> 4.8.0'
         pod 'FBSDKCoreKit','~> 4.8.0'
      
      end
      
      target 'TestSwiftTests' do
      
      end
      
      target 'TestSwiftUITests' do
      
      end
      
    4. Теперь в вашем терминале внутри вашего каталога проекта типа pod install добавить хит введите, это установит все модули, добавленные в ваш файл.

      Installing FBSDKShareKit (4.8.0)
      

      ПРИМЕЧАНИЕ: после установки модуля в вашем проекте .xcworkspace файл будет создан. Вместо того, чтобы использовать .xcodeproj ты должен использовать .xcworkspace для дальнейшего процесса вашего проекта

  3. Так как мы используем swift, мы должны добавить Bridging Header к over project.it помогает в добавлении работы с Objective-C в swift project.

  4. Как создать соединительный заголовок: Использование Command ⌘ + N под ios-source выберите имя файла заголовка как *BridgingHeader.h** выберите местоположение и затем создайте его.
  5. Затем импортируйте ваш pod-файл в заголовочный файл моста, он должен выглядеть следующим образом

    #ifndef BridgingHeader_h
    #define BridgingHeader_h
    
    #import <FBSDKCoreKit/FBSDKCoreKit.h>
    #import <FBSDKShareKit/FBSDKShareKit.h>
    
    #endif /* BridgingHeader_h */
    
  6. Теперь мы успешно создали заголовок моста, чтобы убедиться, что ваш заголовок моста успешно добавлен. Targets затем выберите вашу цель открытой Build Setting вкладка в строке поиска типа bridging. В результате поиска в Objective-C BridgingHeader вы должны иметь свой ProjectName/BridgingHeader.h

  1. Теперь добавьте код в действие вашей кнопки следующим образом:

     if UIApplication.sharedApplication().canOpenURL(NSURL(string: "fb:")!) {
            let content : FBSDKShareLinkContent = FBSDKShareLinkContent()
    
            content.contentURL = NSURL(string: "https://google.com")
            content.contentTitle = "Test"
            content.contentDescription = "FBSDKShareKit is an alternative to this issue"
            content.imageURL = NSURL(string:"https://pixabay.com/static/uploads/photo/2015/10/01/21/39/background-image-967820_960_720.jpg")
    
            let ShareKit: FBSDKShareDialog = FBSDKShareDialog()
            ShareKit.fromViewController = self;
            ShareKit.shareContent = content
            ShareKit.mode = FBSDKShareDialogMode.FeedBrowser
            ShareKit.show()
     }
    
  2. Использование неразрешенного идентификатора FBSDKShareDialogModeWeb для исправления этой замены dialog.mode следующее

     ShareKit.mode = FBSDKShareDialogMode.FeedBrowser
    

Я использую.FeedBrowser, потому что работает нормально для меня.

FBShareDialogue:

FBTimeline:

Теперь мы получили все на временной шкале. Название, описание, изображение,SiteURL.

Другие вопросы по тегам