IOS: как поделиться текстом и изображением в социальных сетях?
Пожалуйста, можете ли вы сказать мне, если я ошибаюсь?
NSString *sharedMsg=[NSString stringWithFormat:@"Hello world"];
UIImage* sharedImg=[UIImage imageNamed:@"image"];
NSArray* sharedObjects=[NSArray arrayWithObjects:sharedMsg, sharedImg, nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc]
initWithActivityItems:sharedObjects applicationActivities:nil];
activityViewController.popoverPresentationController.sourceView = self.view;
[self presentViewController:activityViewController animated:YES completion:nil];
Во время выполнения, когда я выбираю значок Facebook, текст отсутствует, изображение отображается правильно.
Мой xcode - 6.3.1, протестирован на iPad.
Ответы
Ответ 1
Похоже, что последнее обновление для приложения Facebook заменило встроенную активность в Facebook на тот, который игнорирует текст состояния. Если вы удалите приложение Facebook с вашего устройства, текст будет отображаться с использованием кода, который у вас есть. Если у вас установлено приложение Facebook, вы получаете изображения, URL-адреса, но не текст
Политики Facebook не позволяют предварительно заполнять сообщения о статусе и требуют, чтобы весь контент был создан пользователем - хотя я понимаю намерение этого, я лично считаю, что во многих случаях это глупо. Например, в моей игре Я хочу предварительно заполнить счет пользователя, но теперь я не могу, поэтому пользователю предоставляется пустое диалоговое окно. Вероятно, я просто удалю вариант совместного использования Facebook, поскольку никто никогда не будет использовать его сейчас.
Этот ответ из Facebook подтверждает, что поведение по дизайну
Ответ 2
Вот ответ в Swift. Это может не помочь вашей проблеме, но может быть полезно с тем, кто ищет этот заголовок. Просто создайте кнопку и это действие. И установите действие кнопки, как это.
Примечание. Вам нужно войти в свою фейсбук или твиттер, перейдя в настройку. Затем сделайте вот так.
@IBAction func onShareTouched(sender: AnyObject) {
print("share")
let myShare = "My beautiful photo! <3 <3"
let image: UIImage = UIImage(named: "yourImageNameHere")
let shareVC: UIActivityViewController = UIActivityViewController(activityItems: [(image), myShare], applicationActivities: nil)
self.presentViewController(shareVC, animated: true, completion: nil)
}
Ответ 3
NSString* [email protected]"Hello world";
NSURL *myWebsite = [NSURL URLWithString:@"http://www.website.com/"];
// UIImage * myImage =[UIImage imageNamed:@"myImage.png"];
NSArray* [email protected][text,myWebsite];
UIActivityViewController * activityViewController=[[UIActivityViewController alloc]initWithActivityItems:sharedObjects applicationActivities:nil];
activityViewController.popoverPresentationController.sourceView = self.view;
[self presentViewController:activityViewController animated:YES completion:nil];