基本上我的应用程序使用 safari 登录到 facebook ive 但注销不正确我在 appdidfinishlaunching 和按钮操作中使用了会话 closeandcleartoken 但不知何故会话仍然存在并且它不会提示用户再次登录他们的名字并直接访问脸书页面
1 回答
你能检查一下下面这两个链接吗,希望对你有帮助
了解 iPhone 的 NSHTTPCookieStorage
旧更新(请参阅下面的新更新):我认为以下链接可能对您有用,请尝试给我反馈,谢谢。
新更新://因为我们无法清除 safari,所以这个想法可能对您有用。//概念是 -> 在您的应用程序中,您需要创建设置页面(检查在 iphone 的设置中是否有任何 facebook 帐户?如果是,您可以将图像发布到 facebook(您可以使用 uiswitch,当用户切换 facebook 服务时)要打开,它会在 iphone 的设置菜单中检查,是否有任何 facebook 帐户?如果有,您可以打开 facebook 服务))。然后你需要创建“分享页面”,在“分享页面”中会检查你的应用程序的设置页面,facebook服务是否打开?如果是,那么你可以分享图像到facebook,所以我们可以说在分享页面中会有一个分享图片到 facebook 的代码,并且在您的应用程序的设置页面中应该类似于以下内容。So we just let user log in and log out facebook in iphone setting, and we just check user's account from iphone's setting, so you don't have to headache with facebook logout problem anymore :)
,在ios 5中,iphone的设置中没有facebook,所以你别无选择,我从app store的流行应用中寻找解决方案,我提出了这个解决方案,请看下面的代码,希望对你有帮助,其实我已经已经回答了您的问题范围,所以这类似于扩展问题,所以下次请发布一个新问题,希望它至少能引导您走上正确的道路:)。
- (void) facebookAuthen
{
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:@"com.apple.facebook"];
if (accountType == nil) { // ios lower than 6
if (FBSession.activeSession.isOpen) {
[appDelegate closeSession];
NSLog(@"session close");
} else {
[appDelegate openSessionWithAllowLoginUI:YES];
NSLog(@"open session");
}
}
else { // ios 6
NSDictionary* options = [NSDictionary dictionaryWithObject:@"your facebook id" forKey:ACFacebookAppIdKey];
[accountStore requestAccessToAccountsWithType:accountType options:options completion:^(BOOL granted, NSError *error) {
if(granted) { //has an account in iphone's setting
// do something
}
else {
// show alert
}
}];
}
}