4

我正在使用 Facebook JS SDK 登录我的网站,并且我的页面上有此代码

<div id="fb-root"></div>

<script type="text/javascript">
    window.fbAsyncInit = function() {
        FB.init({"appId":"xxxxxxxxxxxxxx","xfbml":true,"oauth":true,"status":false,"cookie":true,"logging":false});
        onFbInit();
    };

    (function() {
        var e = document.createElement('script'); 
        e.src = document.location.protocol + "\/\/connect.facebook.net\/en_US\/all.js";
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    }());
</script>

    <fb:login-button scope="email" autologoutlink="false">Log in using Facebook</fb:login-button>

<script>
    function goLogIn(){
        window.location = "/fb/login_check";
    }

    function onFbInit() {.
        if (typeof(FB)!= 'undefined' && FB!= null ) {
            FB.Event.subscribe('auth.statusChange', function(response) {
                setTimeout(goLogIn, 500);
            });
        }
    }
</script>   

这在所有桌面浏览器和 iPad 上都可以正常工作,但在 iPhone/iPod 上的 Mobile Safari 上,登录按钮会打开一个新选项卡,但不会发回页面,因此不会调用回调。当我单击登录(或注册)页面上的 Facebook 登录按钮时,它会在新选项卡中打开 Facebook oauth 登录页面,我输入我的 Facebook 登录详细信息,Facebook 选项卡会关闭,但焦点不会返回到我的登录页面. 我没有 Mac 来使用检查器,但一位朋友说他们在调试控制台中收到此错误“无法向https://m.facebook.com/发布消息。收件人来自https://www。 facebook.com/

要重现这些步骤:

  1. 在 iPhone 上访问http://eventstagr.am/register(Safari Mobile 和 Chrome 都不起作用)
  2. 点击注册

    • 预期:Facebook 选项卡应关闭并在注册页面上调用 javascript 回调函数
    • 实际:Facebook 选项卡关闭,焦点未返回注册页面

或者,如果您已经有一个帐户,请重复上述步骤,但从http://eventstagr.am/login开始,结果是相同的。

4

1 回答 1

0

您是否已注册您的应用程序以进行移动 Web 登录?您可以通过进入Facebook 应用设置来执行此操作(根据 Facebook 的说明) 。

于 2013-01-02T18:31:20.233 回答