gpt4 book ai didi

iOS 7 SLComposeViewController : Check if tweet was actually posted?

转载 作者:可可西里 更新时间:2023-11-01 03:58:10 24 4
gpt4 key购买 nike

我目前正在使用 SLComposeViewController 将用户的分数发布到 Twitter 或 Facebook(取决于他们点击的按钮)。当他们分享时,他们将获得虚拟货币奖励。我面临的问题是它只会告诉我用户是点击发送还是取消。我如何检查推文是否实际发布到推特上?这将有助于解决用户尝试两次提交同一条推文的情况(推特不允许)。

这是我现在的代码:

//Check if user can send tweet
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

tweetSheet.completionHandler = ^(SLComposeViewControllerResult result) {
switch(result) {
//This means the user cancelled without sending the Tweet
case SLComposeViewControllerResultCancelled:
NSLog(@"User Canceled");
break;

//This means the user hit 'Send'
case SLComposeViewControllerResultDone:
NSLog(@"User Tapped Send");
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{

//Show alert & reward user here

break;
}
dispatch_async(dispatch_get_main_queue(), ^{
[self dismissViewControllerAnimated:NO completion:^{
NSLog(@"Tweet Sheet has been dismissed.");
}];
});
};
[tweetSheet setInitialText:[NSString stringWithFormat:@"Just scored %ld %@! I challenge anyone to try & beat it! 😎🌲", (long)scene.score, suffix]];
[tweetSheet addURL:[NSURL URLWithString:@"http://appstore.com/appurlhere"]];
[self presentViewController:tweetSheet animated:YES completion:^{
NSLog(@"Tweet sheet has been presented.");
}];
}

else {

//Something went wrong, aka no network connection

};

如何检查推文是否实际发布(使用社交框架)。

最佳答案

这个问题已有一年之久,但我只是偶然发现它并且刚刚想出(仅几分钟前!)一个在我的项目中有效的答案。在我的项目中,我正在计算发送了多少条推文以验证用户点击了发送。如果用户取消推文,计数不会增加。希望这会帮助别人。在 SLComposeViewControllerResultDone 下调用 [self tweetSuccessful]。不确定这是否是“正确”的方式,但它似乎是准确的。

-(void)twitterImageTouched:(UIGestureRecognizer *)gesture
{
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[tweetSheet setInitialText:@"Test";
[tweetSheet addImage:[UIImage imageNamed:@"yourImageName"];
[tweetSheet addURL:[NSURL URLWithString:@"http://yourURL"]];
[self presentViewController:tweetSheet animated:YES completion:nil];

tweetSheet.completionHandler = ^(SLComposeViewControllerResult result)
{
switch (result)
{
case SLComposeViewControllerResultCancelled:
NSLog(@"tweet cancelled");
break;
case SLComposeViewControllerResultDone:
NSLog(@"tweet completed");

[self tweetSuccessful];
break;

default:
break;
}
};
}

NSLog(@"Twitter Button Pressed.");
}


-(void)tweetSuccessful
{
NSInteger i = [[NSUserDefaults standardUserDefaults] integerForKey:@"numberOfTweets"];
[[NSUserDefaults standardUserDefaults] setInteger:i + 1 forKey:@"numberOfTweets"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"%li tweets have been shared", (long)i + 1);
}

关于iOS 7 SLComposeViewController : Check if tweet was actually posted?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com