在我的应用程序中,我需要向用户展示Facebook AppRequest对话框。我是这样做的:
NSMutableDictionary* params =
[NSMutableDictionary dictionaryWithObject:friendId forKey:@"to"];
[FBWebDialogs presentRequestsDialogModallyWithSession:FBSession.activeSession
message:NSLocalizedString(@"AppRequestMessage", "")
title:NSLocalizedString(@"AppRequestTitle", "")
parameters:params
handler:^(FBWebDialogResult result, NSURL *url, NSError *error){
if (result == FBWebDialogResultDialogNotCompleted)
{
if (error)
[FRBaseViewController showAlertWithTitle:NSLocalizedString(@"AppRequestFail", "") message:error.localizedDescription];
}
else
{
if ([url.description rangeOfString:@"error"].location == NSNotFound)
{
if ([FRDataModel sharedInstance].shouldChallenge)
[[FRDataModel sharedInstance] finishedRatingFriend];
}
}
FRAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
FRNavigationController *navController = (FRNavigationController *)delegate.navigationController;
[(FRNavigationController *)navController pseudoPopToFrindViewController];
}];
大部分时间,它都能正常运行。但是有时,当用户长时间未登录应用时,它会显示登录对话框而不是应用请求对话框。只要用户注销并重新登录,它就可以正常工作。我想,在某个时候,Facebook SDK 开始认为用户没有登录(尽管用户确实已经登录),或者类似于这样的情况。您是否见过这种行为?请给我一些建议好吗?谢谢。