当用户通过iOS / Swift中的Facebook / Tweeter共享应用时解锁一项功能?

时间:2015-08-20 03:11:11

标签: ios facebook swift

当用户通过Facebook或Tweeter分享我的应用时,是否有这样的功能可以解锁?

像这样:

1)用户点击我的应用程序中的“分享”按钮

2)然后我的应用程序在用户的Facebook

的墙上发布(共享或广告)

3)某些功能在我的应用中解锁

3 个答案:

答案 0 :(得分:-1)

请参阅iOS Facebook Tutorial,了解其在facebook上的完成情况。

在应用程序端,您可以在NSUserDefaults上设置一个标志,或者写入应用程序文件系统以检查该功能是否已解锁。

答案 1 :(得分:-1)

您可以使用Facebook共享delegate方法来了解用户是否已成功共享或不是。

以下是FB开发人员链接,根据您的要求显示各种共享方法。

https://developers.facebook.com/docs/sharing/ios

以下是您可以了解共享状态的方法

- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results{

//UNLOCK THE APP FEATURE IN THIS METHOD

}
- (void)sharerDidCancel:(id<FBSDKSharing>)sharer{

}

- (void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error{
NSLog(@"%@",error);
 }

答案 2 :(得分:-1)

使用UIActivityViewController及其完成处理程序可以相对轻松地完成此操作。

NSString *message = @"my app is awesome.";
NSURL *link = [NSURL URLWithString:@"awesomeapp.com"];
UIActivityViewController *shareController = [[UIActivityViewController alloc] initWithActivityItems:@[message, link]
                                                                              applicationActivities:nil];
//add whatever you don't want
shareController.excludedActivityTypes = @[UIActivityTypeMessage]; 
shareController.completionWithItemsHandler = 
^(NSString *activityType, BOOL completed, NSArray *returnedItems, NSError *activityError) {
    //Share wasn't completed, don't unlock
    if (!completed || activityError) {
        return;
    }
    //Facebook or Twitter
    if ([activityType isEqualToString:UIActivityTypePostToFacebook] ||
        [activityType isEqualToString:UIActivityTypePostToTwitter]) {
        //Unlock item logic
    }
};
[self presentViewController:shareController animated:YES completion:^{
    //Whatever
}];