【问题标题】:iOS: How to share text and image on social networks?iOS:如何在社交网络上分享文字和图片?
【发布时间】:2015-07-05 14:40:18
【问题描述】:

拜托,如果我做错了,你能告诉我吗?

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 上测试。

【问题讨论】:

    标签: ios facebook share uiactivityviewcontroller


    【解决方案1】:

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

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

    来自 Facebook 的 response 确认该行为是设计使然

    【讨论】:

    • 你是对的,一个毫无意义的选择......用户可以在发送到他的个人资料之前简单地编辑和更改它。这样一来,Facebook 将失去很多份额。
    • 感谢您指出这一点,这让我发疯了! Facebook 的举动多么愚蠢。
    • 只有#hashtag 对我有用。纯文本和 URL 不再起作用了?
    • 我无法分享图片,只能分享网址
    • 嘿@Ixx,我们也遇到了同样的问题。如果您提供链接,图像将被忽略。分享到 Facebook 时删除链接,What's app 将起作用。
    【解决方案2】:
    NSString* text=@"Hello world";
    NSURL *myWebsite = [NSURL URLWithString:@"http://www.website.com/"];
    //  UIImage * myImage =[UIImage imageNamed:@"myImage.png"];
    NSArray* sharedObjects=@[text,myWebsite];
    UIActivityViewController * activityViewController=[[UIActivityViewController alloc]initWithActivityItems:sharedObjects applicationActivities:nil];
    
    activityViewController.popoverPresentationController.sourceView = self.view;
    [self presentViewController:activityViewController animated:YES completion:nil];
    

    【讨论】:

    • 你能在这个答案中添加一些上下文吗? GooglePlusFacebookShare 对象来自哪里?您是否在安装了最新的 Facebook 应用程序的情况下测试了此代码?
    • 是的,我测试过,GooglePlus 和 FacebookShare 是 UIActivity 的自定义子类
    • 您还没有显示FacebookShare 的代码 - 大概这是使用 Facebook SDK 共享的一些实现。使用 Facebook SDK 需要同意 Facebook 禁止预先填充文本的条款。
    • 如果您安装了最新的 Facebook 应用程序,这将不起作用 - 文本区域只是空白。如果您有较旧的应用程序或没有应用程序,它可以工作
    • URL 将在那里,但不是文本。文本将在消息、邮件或 Twitter 中
    【解决方案3】:

    这是 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)
    
      }
    

    【讨论】:

    • 图片分享对我不起作用,它唯一的分享文本,请建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2016-09-06
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多