Iphone facebook连接示例呼叫safari。我不想使用safari

时间:2010-12-21 16:52:21

标签: iphone safari facebook

Iphone facebook连接示例调用safari。我不想使用safari。如何解决这个问题。

9 个答案:

答案 0 :(得分:14)

我不确定这是否是犹太洁食,但我在Facebook.m中注释了第131-145行以弹出UIWebView而不是在Safari中打开登录屏幕。似乎对我来说很好......

答案 1 :(得分:6)

Donkim的上述建议对我使用SDK的1/31/2011提交效果很好。另一种选择是在Facebook.m中查找每次调用“authorizeWithFBAppAuth:safariAuth:”。您可以在第221,267和274行将第二个参数从YES更改为NO。

答案 2 :(得分:2)

尽管它打开野生动物园并且那很难看,但是你可以从SSO中受益,这是一个很棒的功能。如果任何其他应用程序正在使用FBConnect,您的用户将自动连接到您的用户。如果Facebook应用程序存在,它甚至更好,登录是通过Facebook应用程序完成的,不再是在safari中。

所以我建议你保持这种状态!

我同意整个过程应该有所改进,每次连接时至少不要打开新的Safari选项卡!耐心...

答案 3 :(得分:2)

如果用户有iphone的Facebook应用程序,那么它将无法打开Safari。 它将直接打开Facebook App

答案 4 :(得分:1)

所有这些解决方案的问题是您失去了一致的auth_token。因此,如果您需要稍后在代码中通过传递URL中的auth_token来执行手动图形请求,则根本不能。

答案 5 :(得分:1)

设置safariAuth:NO [self authorizeWithFBAppAuth:YES safariAuth:NO]; (facebook.m:221)

答案 6 :(得分:0)

对于使用较新的Facebook iOS SDK的用户(不确定添加了哪个版本),您可以使用dialog:@"oauth" ...方法(doc)。正如其他人所说的那样,你放弃了SSO,但对于像我这样的用例(一个OpenGL游戏),我发现叠加层更适合切换到另一个应用程序。

答案 7 :(得分:0)

档案:Facebook.m |开始于:第220行authorizeWithFBAppAuth:safariAuth: |将布尔trySafariAuth = NO;添加到第223行

  /**
   * 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...
    }

答案 8 :(得分:0)

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];
    }