Как поделиться текстом метки из приложения 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 описывает следующее.
Возвращаемое значение
Возвращает логическое значение, указывающее, был ли текст успешно задан.
Использование FBSDKShareKit не является полной альтернативой, но помогает отображать предварительно заполненный контент на экране диалога общего доступа.
Для базовой проверки перейдите по ссылке cocoapods. Откройте ваш терминал и установите cocoapods.
$ sudo gem install cocoapods
откройте каталог вашего проекта, например: cd / desktop / TestSwift,
Затем, чтобы создать файл pod в вашем проекте после открытия директории проекта, добавьте следующую строку
pod init
это создаст подфайл внутри вашего проектаОткройте подфайл в 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
Теперь в вашем терминале внутри вашего каталога проекта типа
pod install
добавить хит введите, это установит все модули, добавленные в ваш файл.Installing FBSDKShareKit (4.8.0)
ПРИМЕЧАНИЕ: после установки модуля в вашем проекте
.xcworkspace
файл будет создан. Вместо того, чтобы использовать.xcodeproj
ты должен использовать.xcworkspace
для дальнейшего процесса вашего проекта
Так как мы используем swift, мы должны добавить Bridging Header к over project.it помогает в добавлении работы с Objective-C в swift project.
- Как создать соединительный заголовок: Использование
Command ⌘ + N
подios-source
выберите имя файла заголовка как *BridgingHeader.h** выберите местоположение и затем создайте его. Затем импортируйте ваш pod-файл в заголовочный файл моста, он должен выглядеть следующим образом
#ifndef BridgingHeader_h #define BridgingHeader_h #import <FBSDKCoreKit/FBSDKCoreKit.h> #import <FBSDKShareKit/FBSDKShareKit.h> #endif /* BridgingHeader_h */
Теперь мы успешно создали заголовок моста, чтобы убедиться, что ваш заголовок моста успешно добавлен.
Targets
затем выберите вашу цель открытойBuild Setting
вкладка в строке поиска типа bridging. В результате поиска в Objective-C BridgingHeader вы должны иметь свой ProjectName/BridgingHeader.h
Теперь добавьте код в действие вашей кнопки следующим образом:
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() }
Использование неразрешенного идентификатора FBSDKShareDialogModeWeb для исправления этой замены
dialog.mode
следующееShareKit.mode = FBSDKShareDialogMode.FeedBrowser
Я использую.FeedBrowser, потому что работает нормально для меня.
FBShareDialogue:
FBTimeline:
Теперь мы получили все на временной шкале. Название, описание, изображение,SiteURL.