我正在使用 HelloFacebookSample 中的代码从我的应用程序中共享一个链接,但我不知道如何知道共享是否真的发生了。我用它来分享:
FBAppCall *appCall = [FBDialogs presentShareDialogWithLink:urlToShare
name:@"Hello Facebook"
caption:nil
description:@"The 'Hello Facebook' sample application showcases simple Facebook integration."
picture:nil
clientState:nil
handler:^(FBAppCall *call, NSDictionary *results, NSError *error) {
if (error) {
NSLog(@"Error: %@", error.description);
} else {
NSLog(@"Success!");
}
NSLog(@"Results: %@",results);
}];
这很好用。问题是访问结果字典。我发现我需要将此添加到应用程序委托中:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBAppCall handleOpenURL:url
sourceApplication:sourceApplication
fallbackHandler:^(FBAppCall *call) {
NSLog(@"In fallback handler");
}];
}
否则处理程序根本不会运行。现在奇怪的是,在示例应用程序中,结果字典有两个字段,
completionGesture = cancel;
didComplete = 1;
但是当我在自己的应用程序中使用完全相同的代码时,在同一部手机上,字典只包含
didComplete = 1;
为什么会这样,还有其他方法可以查明用户是共享还是取消?