iPhone 上的 Facebook 登录按钮

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开始重复上述步骤,结果是相同的。


这个漏洞现在已经被修复了。http://developers.facebook.com/bugs/395093920559749 - Ollie Harridge
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接