2

我正在开发一个要求用户通过 Facebook 进行身份验证的响应式网站。我已经设置了 Facebook JS SDK,以及登录和登录成功回调。我的设置在台式机上运行良好,但在 iPhone 上(似乎可以在 iPad 上运行!)我遇到了一个尚未解决的问题。

当点击登录按钮时,用户会被带到一个要求用户登录的新选项卡。用户输入他/她的凭据后,选项卡会关闭,但 Safari 不会重新打开我的页面。相反,Safari 位于“选项卡选择”屏幕中,并突出显示了我的页面。用户必须通过点击选项卡明确地重新打开我的页面。点击选项卡时,它似乎并没有一致地触发authResponseChange

请注意,如果我确保 iPhone 上的 Safari 除了我的页面之外没有打​​开任何选项卡,那么我会自动返回到它(正如 Safari 应用程序的设计所预期的那样),并且该站点正常运行。

<div id="fb-root"></div>    
<script>
  $(document).ready(function() {
    $.ajaxSetup({ cache: true });
    $.getScript('//connect.facebook.net/en_US/all.js', function() {
      FB.init({
        appId      : 'xxx',
        xfbml      : true,
        status     : true,
        cookie     : true
      });                      
    });      
  });

  $("#login_button").bind("vclick", function() {
    // Require explicit login
    FB.Event.subscribe("auth.authResponseChange", function(response) {
      if (response.status === "connected") {
        // Perform API calls and display more of the page ...
        // $.get("https://graph.facebook.com/me/friends?access_token=")
        // FB.api("/me/friends", function(data) {});
      }
    });                
    FB.login(function(response) {}, {scope: 'email,friends_birthday,friends_hometown'});
  });
</script>
4

0 回答 0