Iphone facebook connect示例调用safari。我不知道';我不想使用safari
Iphone facebook connect示例调用safari。我不想使用safari。如何解决此问题。我不确定这是否符合犹太教义,但我在Iphone facebook connect示例调用safari。我不知道';我不想使用safari,iphone,safari,facebook,Iphone,Safari,Facebook,Iphone facebook connect示例调用safari。我不想使用safari。如何解决此问题。我不确定这是否符合犹太教义,但我在Facebook.m中注释了第131-145行,以弹出一个UIWebView,而不是在Safari中打开登录屏幕。对我来说似乎工作得很好…尽管它打开了safari,这很难看,但您可以从SSO中获益,这是一个很好的功能。如果任何其他应用程序正在使用FBConnect,您的用户将自动连接到您的应用程序。如果有facebook应用程序,那就更好了,登录是通过fa
Facebook.m
中注释了第131-145行,以弹出一个UIWebView
,而不是在Safari中打开登录屏幕。对我来说似乎工作得很好…尽管它打开了safari,这很难看,但您可以从SSO中获益,这是一个很好的功能。如果任何其他应用程序正在使用FBConnect,您的用户将自动连接到您的应用程序。如果有facebook应用程序,那就更好了,登录是通过facebook应用程序完成的,而不再是safari
所以我建议你保持这样
我同意整个过程应该有所改进,至少不要每次连接时都打开一个新的safari标签!耐心…若用户有iphone的Facebook应用程序,那个么它就不会打开safari。
它将直接打开Facebook应用程序Donkim的建议在我使用2011年1月31日提交的。另一个选择是在Facebook.m中查找每个对“authorizeWithFBAppAuth:safariAuth:”的调用。您可以在第221、267和274行将第二个参数从YES更改为NO 所有这些解决方案的问题是您丢失了一致的身份验证令牌。因此,如果您以后需要在代码中通过在URL中传递auth_令牌来执行手动图形请求,则无法执行。将safariAuth:NO设置为[self AuthorizationWithFBAppauth:YES safariAuth:NO];(facebook.m:221)对于任何使用较新的facebook iOS SDK(不确定添加了哪个版本)的用户,您可以使用
对话框:@“oauth”…
方法()。正如其他人所说,您放弃SSO,但对于像我这样的用例(OpenGL游戏),我发现覆盖比切换到其他应用更可取。文件:|开始于:行#220authorizeWithFBAppAuth:safariAuth:
|添加布尔trySafariAuth=NO代码>至第223行
在facebook.m中更改以下方法
-(无效)授权:(NSArray*)权限
委托人:(id)委托人{
[_权限释放];
_权限=[权限保留];
_sessionDelegate=委托;
[通过FBAppAuth自授权:无safariAuth:无];
//[通过FBAppAuth自我授权:否safariAuth:是];
}
那么你想用什么呢,Firefox?非常感谢你提出这个问题。。。我已经绞尽脑汁好几个星期了,我甚至实现了自己的UIWebView,它看起来比facebook的要丑陋100倍。为了简化这一改变,我只是强迫trySafariAuth在FBAppauth:safariAuth中拒绝。就像一个魅力,让用户留在应用程序中。对于更新版本的用户来说,要找到@donkim的代码是指搜索BOOL didOpenOtherApp=NO;有用的部分是下面的if
block。也许我遗漏了什么,但是Facebook.m在哪里?如果我签入添加到我的项目中的FacebookSDK.framework
,我会看到许多头文件前面都有FB
,但没有Facebook.m。欢迎提供任何信息@sixstatesaway,我也找不到它。但我现在找到了。打开你的facebook ios sdk.xcodeproj
。在FacebookSDK下,你会找到Legacy
。在Legacy
下,有facebook.m
/**
* A private function for opening the authorization dialog.
*/
- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
safariAuth:(BOOL)trySafariAuth {
trySafariAuth = NO;
// more code allow blow this, but im too lazy to show it
// so please just change the boolean...
}
Change following method as follows in facebook.m
- (void)authorize:(NSArray *)permissions
delegate:(id<FBSessionDelegate>)delegate {
[_permissions release];
_permissions = [permissions retain];
_sessionDelegate = delegate;
[self authorizeWithFBAppAuth:NO safariAuth:NO];
// [self authorizeWithFBAppAuth:NO safariAuth:YES];
}