FB.login iOS WebApp的破解stream程

我正在制作一个iOS Web应用程序(即,在独立模式下运行的一个HTML页面 – 当页面的书签添加到主屏幕时,Safari Chrome浏览器都不会显示)。

我有一个button,点击调用FB.login()。 当在独立模式下,webappredirect到facebooklogin页面(如预期的那样),然而之后,我被卡在一个白色的屏幕上(我没有被要求authentication,因为我已经有了,但我想象authentication屏幕会发生在白屏之前),不要放回web应用程序。

Safari应用程序中的相同stream程按预期工作。 点击login调用FB.login(),打开一个新页面,要求您login到Facebook,一旦您login并authentication应用程序,该页面closures,您将被放回原始页面。

看起来,在独立模式下,FBloginclosures并redirect回应用程序的“第二页”存在问题(事实并非如此)。 stream量被打破了。

有没有这样的解决方法?

谢谢,
-esa

您可以尝试下面的解决方法。 它为我工作。 在手机中,它redirect到客户端身份validationurl。

 var isMobile = false; try { isMobile = (window.location.href == top.location.href && window.location.href.indexOf("/mobile/") != -1); } catch (e) {} if (!isMobile) { FB.login(); } else { var permissionUrl = "https://m.facebook.com/dialog/oauth?client_id=" + appId + "&response_type=code&redirect_uri=" + redirectPage + "&scope=" + permissions; window.location = permissionUrl; return; } 

我使用以下来检测我是否在主屏幕模式,并做相应的事情:

 if ("standalone" in navigator && navigator.standalone) { var permissionUrl = "https://m.facebook.com/dialog/oauth?client_id=" + appId + "&response_type=code&redirect_uri=" + window.location + "&scope=" + app_permissions; window.location = permissionUrl; } else { FB.login( function(response) { ... }, {scope: app_permissions} ); }