【问题标题】:iPhone/iOS - How to use "ShareKit" to post only to Facebook or only to TwitteriPhone/iOS - 如何使用“ShareKit”仅发布到 Facebook 或仅发布到 Twitter
【发布时间】:2014-02-09 23:11:09
【问题描述】:

在我的 iPhone 应用程序中,我有两个两个按钮,分别标记为“Facebook”和“Twitter”。 我想使用Sharekit 框架,这让我的分享变得非常简单。但是在ShareKit的示例代码中,我只能展示很多共享服务,我不想包括在内。我希望我的“Facebook”按钮只显示 Facebook 共享服务,Twitter 也是如此。我怎样才能修改 ShareKit 以使其像这样工作?

【问题讨论】:

    标签: iphone facebook twitter sharekit


    【解决方案1】:

    更新

    由于这个答案仍然很受欢迎,我只想补充一点,在 iOS 5 和 iOS 6 中,对Sharekit 的需求要少得多。许多流行的共享选项现在都内置在操作系统中。话虽如此,此答案对于未内置在设备中的共享服务仍然有效,或者您只是更喜欢 Sharekit。


    我会告诉你如何为 Facebook 做,Twitter 完全一样,只需将 Facebook 的所有实例都更改为 Twitter

    首先,#import "SHKFacebook.h" 然后在按钮的目标方法中,输入以下内容:

    SHKItem *item;    //This creates the Sharekit Item
    NSURL *url = [NSURL URLWithString:@"http://itunes.apple.com/us/app/...?mt=8"];
    

    NSURL 应该是指向您在应用商店中的应用的链接。这样,如果有人在 Facebook 上看到您的应用发布的帖子并点击它,他们将被定向到商店以便下载。严格来说,这是可选的,但是您为什么不尝试使用这额外的一行来获得新的下载。

    现在我们需要如下设置SHKItem

    item = [SHKItem URL:url title:[NSString stringWithFormat:@"I'm playing someGame on my iPhone! My Highscore is %i, think you can beat it?", highScoreInt]];
    

    然后像这样设置帖子:

    item = [SHKItem URL:url title:@"Share Me!"];
    

    标题参数不能用户自定义。无论您在此处设置什么,用户都无法更改。除了您放在那里的任何内容之外,他们还有机会添加自己的文字。

    最后显示项目:

    [SHKFacebook shareItem:item];
    

    我希望这会有所帮助。正如我所说,只需将本文中的 Facebook 更改为 Twitter。如果您需要更多帮助,请在评论中告诉我。

    【讨论】:

    • 这很好用,除了:Facebook 弹出窗口不是全屏的。仍然可以与后面的视图进行交互(通过在 Facebook 弹出框外点击),这不是用户所期望的(也不是我们想要的)。我是否错过了强制 ShareKit 覆盖现有视图直到共享请求完成的技巧?
    • 您有权认为该背景视图仍处于活动状态。在我的应用程序中,我总是让它保持活动状态,但既然你提到它,你禁用触摸的方式就在[SHKFacebook shareItem:item]; 之后,输入这一行:self.view.userInteractionEnabled = NO; 问题是你必须在用户之后重新启用共享完成的。我还没有弄清楚。我会玩它,当我弄清楚时,我会在上面更新我的答案。
    • 谢谢。我们真正需要的是一个 sharekit 完成后的回调。然而,sharekit 架构并没有让添加这个变得微不足道。如果你能找到一个很好的解决方案。
    • 实际上弹出框是用户应该期待的,并且符合人机界面指南。无论如何,因为这已经几个月了,我相信你已经解决了你的问题。
    • 是的,弹出框是预期的,但这不是我们在谈论的。我们讨论的是在使用 ShareKit 时禁用背景视图。
    【解决方案2】:

    Sharekit 提供了一种通用的共享机制,但也公开了各个服务。例如,如果您要在 twitter 上分享一个 URL,您可以编写以下代码:

    #import "ShareKit/Core/SHK.h"
    #import "ShareKit/Sharers/Services/Twitter/SHKTwitter.h"
    
    ...
    
    SHKItem *item = [SHKItem URL:url title:@"A title"];
    [SHKTwitter shareItem:item];
    

    这是all explained in the documentation,但不要害怕探索各个服务的头文件。

    【讨论】:

      【解决方案3】:

      我在我的一个应用程序中也遇到了同样的问题,并试图强制 sharekit 这样做。

      不过,ShareKit 并不是真正为它而生的,它旨在提供大量的共享选项 - 所以即使经过修改,我发现它并不是一个非常优雅或高效的解决方案。

      当然,这会节省一些时间 - 但如果您想要一个美观、优雅的解决方案,我建议您自己集成 twitter 和 facebook。这需要一些时间,但您可以完全按照自己的意愿定义行为,并为界面设置主题以更好地适应您的应用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-06
        • 1970-01-01
        • 2011-03-28
        • 1970-01-01
        • 1970-01-01
        • 2013-03-15
        • 1970-01-01
        • 2012-11-09
        相关资源
        最近更新 更多