2014-03-24 48 views
1

我有一个应用程序与UIWebView显示web page它有Facebook登录。我正在使用Facebook的JavaScript SDK(我无法使用iOS SDK)。Facebook的登录工作在Safari浏览器,但不是在UIWebView

当我在移动版Safari中打开网站时,登录工作正常,但不是在网页视图中。登录对话框打开后,我输入用户凭据并重定向到空白页面。我知道是什么原因造成的。在普通浏览器中,此登录对话框将在新窗口中打开。但由于UIWebView不支持多个窗口,因此登录会替换网页,并且一旦登录成功,它将无法重定向回原始网页。

我已经搜索了所有的解决方案,但几乎所有这些都过时了。我不认为这有一个简单的解决方法,但如果任何人有解决方法/黑客,请帮助我。

谢谢。

+0

@rAzOr我实际上找不到解决方案。抱歉。 – Isuru

+0

Isuru,我知道这已经有一段时间了,但是你有没有找到解决方案? – byron

+0

@byron我不认为我找到了解决方案。老实说,我不记得,因为这是很久以前,我现在无法访问这个项目。抱歉。 – Isuru

回答

0

检查您是否将Facebook应用程序ID(您的应用程序ID)添加到Xcode项目 - 应用程序的url模式中。然后确保在fb登录后将用户重定向回您的页面。

 - (void)webViewDidFinishLoad:(UIWebView *)webView 
      { 

      NSString *url = [[webView.request URL] absoluteString]; 

      // if([url hasPrefix:@"https://m.facebook.com/dialog/oauth"]) 
if([url hasPrefix:@"https://m.facebook.com/home.php?"]) 

      { 
      /* here you must implement method to send user to your page */ 
       [self backToMyPage]; 
      } 
      } 

      } 
+0

嗨!谢谢回复。我试过这种方法,但它只能在某些情况下工作。正如在这里,如果我使用Facebook提供的原始登录按钮,这将起作用。如果我使用自定义按钮进行fb登录,则此方法不起作用。你有没有遇到过这种情况? – Isuru

相关问题