iOS:如何在社交网络上分享文字和图片?

use*_*180 47 share facebook ios uiactivityviewcontroller

拜托,如果我犯错误,你能告诉我吗?

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];
Run Code Online (Sandbox Code Playgroud)

在运行时,当我选择Facebook的图标时,文本丢失,图像被正确显示.
我的xcode是6.3.1,在iPad上测试过.

Pau*_*w11 95

Facebook应用程序最近的更新似乎取代了内置的Facebook共享活动,忽略了状态文本 - 如果您从设备中删除Facebook应用程序,将使用您拥有的代码显示文本.如果您安装了Facebook应用程序,则会获得图像,URL而不是文本

Facebook的政策不允许您预先填充状态消息并要求所有内容都是用户生成的 - 虽然我理解这背后的意图,我个人认为在许多情况下它有点愚蠢 - 例如在我的游戏中我想要预先填充用户的分数,但现在我不能,因此向用户显示一个空对话框.我可能会简单地删除Facebook共享选项,因为现在没有人会使用它.

响应从Facebook确认行为是设计

  • 你是对的,一个毫无意义的选择......用户可以在发送到他的个人资料之前简单地编辑和更改它.这样Facebook将失去很多股票. (11认同)

Khu*_*ong 8

以下是Swift的答案.它可能对您的问题没有帮助,但对于寻找此标题的人来说可能会有所帮助.只需创建一个按钮即可.并像这样安装按钮的动作.

注意:您必须通过设置登录您的Facebook或Twitter.然后这样做.

@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)

  }
Run Code Online (Sandbox Code Playgroud)