gpt4 book ai didi

iphone - FB Singleton登录

转载 作者:行者123 更新时间:2023-12-01 19:24:15 26 4
gpt4 key购买 nike

我正在创建一个单例来访问所有Facebook方法,并且要处理此单例中的“登录”对话框。

我在Facebook上遵循了iOS SDK教程,但是它只允许我在应用程序启动时登录,而不能在用户按下按钮时登录。

有什么替代品

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [self.facebook handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [self.facebook handleOpenURL:url];
}

似乎是问题所在,我的应用程序未切换到浏览器或FB App进行登录。
当我在AppDelegate中实现相同的东西时,它可以工作,但应在Application启动后立即进行。

最佳答案

我已经这样解决了:

在AppDelegate中:

-(void)connectToFacebook{
facebook = [[Facebook alloc] initWithAppId:kAPPID andDelegate:self];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];

}

if (![facebook isSessionValid]) {
[facebook authorize:nil];
}
}

// For 4.2+ support
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [facebook handleOpenURL:url];
}

- (void)fbDidLogin {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}

在Singleton中:
- (id)init {
self = [super init];
if (self != nil) {
NBNAppDelegate *delegate = (NBNAppDelegate *)[[UIApplication sharedApplication] delegate];
[delegate connectToFacebook];
facebook = delegate.facebook;
}
return self;
}

关于iphone - FB Singleton登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733298/

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