2015-08-26 2 views
0

У меня есть этот код, который содержит скриншот приложения, начальный текст и URL-адрес через меню Apple Share при нажатии кнопки Share. Он работает как прелесть с Twitter, сообщениями, электронной почтой и т. Д., Но когда я хочу поделиться с Facebook или Facebook Messenger, текст не отображается (но изображение и URL-адрес). Любая идея, почему это так и как ее исправить?Общий текст не распространяется на Facebook (но другим)

Мне удалось поделиться текстом и URL-адресом Facebook с другими функциями (но они не предоставили правильный снимок экрана, поэтому я переключился на этот).

Заранее благодарен!

Редактировать: текст делится в симуляторе xcode, а не на iPhone (ы).

func takeSnapshot(view: UIView) { 
     let bounds = UIScreen.mainScreen().bounds 
     UIGraphicsBeginImageContextWithOptions(bounds.size, true, 0.0) 
     self.view.drawViewHierarchyInRect(bounds, afterScreenUpdates: false) 
     let image = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     let text = "Text to be shared... #Hashtag" 
     let URL = NSURL(string: "http://stackoverflow.com/")! 
     let activityViewController = UIActivityViewController(activityItems: [image, text, URL], applicationActivities: nil) 
     self.presentViewController(activityViewController, animated: true, completion: nil) 

    } 
+2

Запретный текст запрещен политикой платформы Facebook – WizKid

ответ

1

обновление для приложения Facebook заменил Facebook долю активности в построенном с той, которая игнорирует текст состояния - Если вы удалите приложение Facebook с мобильного устройства, текст будет отображаться с помощью кода необходимо. Если у вас установлено приложение Facebook, вы получаете изображения, URL-адреса, но не текст.

Следуйте инструкциям: https://developers.facebook.com/docs/sharing/ios

Затем вы можете сделать что-то вроде этого:

Дайте ссылку

let content : FBSDKShareLinkContent = FBSDKShareLinkContent() 
content.contentURL = NSURL(string: "<INSERT STRING HERE>") 
content.contentTitle = "<INSERT STRING HERE>" 
content.contentDescription = "<INSERT STRING HERE>" 
content.imageURL = NSURL(string: "<INSERT STRING HERE>") 

let button : FBSDKShareButton = FBSDKShareButton() 
button.shareContent = content 
button.frame = CGRectMake((UIScreen.mainScreen().bounds.width - 100) * 0.5, 50, 100, 25) 
self.view.addSubview(button) 

Share Фото

class ViewController: UIViewController, FBSDKLoginButtonDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate 
let button : UIButton = UIButton() 
button.backgroundColor = UIColor.blueColor() 
button.setTitle("Choose Photo", forState: .Normal) 
button.frame = CGRectMake((UIScreen.mainScreen().bounds.width - 150) * 0.5, 125, 150, 25) 
button.addTarget(self, action: "photoBtnClicked", forControlEvents: .TouchUpInside) 
self.view.addSubview(button) 

let label : UILabel = UILabel() 
label.frame = CGRectMake((UIScreen.mainScreen().bounds.width - 200) * 0.5, 100, 200, 25) 
label.text = "Photos Example" 
label.textAlignment = .Center 
self.view.addSubview(label) 

func photoBtnClicked(){ 
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){ 
     println("Photo capture") 
     imagePicker.delegate = self 
     imagePicker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum; 
     imagePicker.allowsEditing = false 
     self.presentViewController(imagePicker, animated: true, completion: nil) 
    } 
} 

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { 

    let photo : FBSDKSharePhoto = FBSDKSharePhoto() 
    photo.image = info[UIImagePickerControllerOriginalImage] as! UIImage 
    photo.userGenerated = true 
    let content : FBSDKSharePhotoContent = FBSDKSharePhotoContent() 
    content.photos = [photo] 
} 

Фотографии должны быть не менее 12 МБ

Доля видео на Facebook

class ViewController: UIViewController, FBSDKLoginButtonDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate 
let button : UIButton = UIButton() 
button.backgroundColor = UIColor.blueColor() 
button.setTitle("Choose Video", forState: .Normal) 
button.frame = CGRectMake((UIScreen.mainScreen().bounds.width - 150) * 0.5, 200, 150, 25) 
button.addTarget(self, action: "videoBtnClicked", forControlEvents: .TouchUpInside) 
self.view.addSubview(button) 

let label : UILabel = UILabel() 
label.frame = CGRectMake((UIScreen.mainScreen().bounds.width - 200) * 0.5, 175, 200, 25) 
label.text = "Video Example" 
label.textAlignment = .Center 
self.view.addSubview(label) 
func videoBtnClicked(){ 
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSource Type.SavedPhotosAlbum){ 
     println("Video capture") 
     imagePicker.delegate = self 
     imagePicker.sourceType = UIImagePickerControllerSourceType.SavedPhotosAlbum 
     imagePicker.allowsEditing = false 
     self.presentViewController(imagePicker, animated: true, completion: nil) 
    } 

} 
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { 

     let video : FBSDKShareVideo = FBSDKShareVideo() 
     video.videoURL = info[UIImagePickerControllerMediaURL] as! NSURL 
     let content : FBSDKShareVideoContent = FBSDKShareVideoContent() 
     content.video = video 
} 

Видео должно быть меньше, чем 12 МБ в размере. Надеюсь, я помог вам. (Извините за мой английский)