在我的 iPhone 应用程序中,我有两个两个按钮,分别标记为“Facebook”和“Twitter”。我想使用Sharekit框架,它让我的分享变得非常简单。但是在ShareKit的示例代码中,我只能展示很多共享服务,我不想包括在内。我希望我的“Facebook”按钮只显示 Facebook 共享服务,Twitter 也是如此。我如何修改 ShareKit 以使其像那样工作?
3 回答
更新:
由于这个答案仍然很受欢迎,我只想补充一点,在 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。如果您需要更多帮助,请在评论中告诉我。
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];
这在文档中都有解释,但不要害怕探索各个服务的头文件。
我在我的一个应用程序中也遇到了同样的问题,并试图强制 sharekit 这样做。
不过,ShareKit 并不是真正为它而生的,它的目的是提供大量的共享选项——所以即使经过修改,我发现它并不是一个非常优雅或高效的解决方案。
当然,这会节省一些时间——但如果你想要一个好看、优雅的解决方案,我建议你自己集成 twitter 和 facebook。这需要一些时间,但您可以完全按照自己的意愿定义行为,并为界面设置主题以更好地适应您的应用程序。