Facebook FBSession.activeSession handleOpenURL在应用程序丢弃、重新启动后失败

Facebook FBSession.activeSession handleOpenURL在应用程序丢弃、重新启动后失败,facebook,facebook-ios-sdk,Facebook,Facebook Ios Sdk,我的iOS应用程序经常在FUS登录Facebook页面时被丢弃。我正在努力减少内存使用,但我想保证即使我的应用程序被抛弃,登录也能正常工作 不过,到目前为止,我还没能让它发挥作用。当我按下登录按钮时,我的应用程序将成功重新启动。我将url传递到didfishlaunchingwithoptions以及我的appDelegate的openURL中,然后调用[[FBSession alloc]initWithAppID],返回处于SessionCreated状态的会话 然后我打电话 openActi

我的iOS应用程序经常在FUS登录Facebook页面时被丢弃。我正在努力减少内存使用,但我想保证即使我的应用程序被抛弃,登录也能正常工作

不过,到目前为止,我还没能让它发挥作用。当我按下登录按钮时,我的应用程序将成功重新启动。我将url传递到
didfishlaunchingwithoptions
以及我的
appDelegate
的openURL中,然后调用
[[FBSession alloc]initWithAppID]
,返回处于
SessionCreated
状态的会话

然后我打电话

openActiveSessionWithPermissions:array allowLoginUI:NO completionHandler:^{stuff}
但是当我在活动会话上调用
handleOpenURL
时,我的
completionHandler
不会被调用,我也不会登录

有人能帮助我如何让FB SDK准备好接受返回的URL吗?或者这可能吗


我正在使用FB SDK的v3.8.0。

终于找到了正确的调用顺序
authStr
是传递到
didFinishLaunchingWithOptions
的url

bool IOSFacebookDriver::OpenAuthToken(const std::string &authStr)
{
    NSString *authString = [NSString stringWithCString:authStr.c_str() encoding:NSUTF8StringEncoding];
    NSURL *authURL = [NSURL URLWithString:authString];
    FBAccessTokenData *token = [FBAccessTokenData createTokenFromFacebookURL:authURL appID:mNSAppId urlSchemeSuffix:[FBSession defaultUrlSchemeSuffix]];
    bool tokenAccepted = [[FBSession activeSession] openFromAccessTokenData:token completionHandler:^(FBSession* session, FBSessionState state, NSError* error)
     {<completion handler>};
}
bool IOSFacebookDriver::OpenAuthToken(const std::string&authtstr)
{
NSString*authString=[NSString stringWithCString:authStr.c_str()编码:NSUTF8STRINGENCONDING];
NSURL*authURL=[NSURL-URLWithString:authString];
FBAccessTokenData*token=[FBAccessTokenData createTokenFromFacebookURL:authURL appID:mNSAppId urlSchemeSuffix:[FBSession defaultUrlSchemeSuffix]];
bool tokenAccepted=[[FBSession activeSession]openFromAccessTokenData:令牌完成处理程序:^(FBSession*会话,FBSessionState,NSError*错误)
{};
}

终于找到了正确的调用顺序。
authStr
是传递到
didfishlaunchingwithoptions
的url

bool IOSFacebookDriver::OpenAuthToken(const std::string &authStr)
{
    NSString *authString = [NSString stringWithCString:authStr.c_str() encoding:NSUTF8StringEncoding];
    NSURL *authURL = [NSURL URLWithString:authString];
    FBAccessTokenData *token = [FBAccessTokenData createTokenFromFacebookURL:authURL appID:mNSAppId urlSchemeSuffix:[FBSession defaultUrlSchemeSuffix]];
    bool tokenAccepted = [[FBSession activeSession] openFromAccessTokenData:token completionHandler:^(FBSession* session, FBSessionState state, NSError* error)
     {<completion handler>};
}
bool IOSFacebookDriver::OpenAuthToken(const std::string&authtstr)
{
NSString*authString=[NSString stringWithCString:authStr.c_str()编码:NSUTF8STRINGENCONDING];
NSURL*authURL=[NSURL-URLWithString:authString];
FBAccessTokenData*token=[FBAccessTokenData createTokenFromFacebookURL:authURL appID:mNSAppId urlSchemeSuffix:[FBSession defaultUrlSchemeSuffix]];
bool tokenAccepted=[[FBSession activeSession]openFromAccessTokenData:令牌完成处理程序:^(FBSession*会话,FBSessionState,NSError*错误)
{};
}