我正在使用 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/ “
要重现这些步骤:
- 在 iPhone 上访问http://eventstagr.am/register(Safari Mobile 和 Chrome 都不起作用)
点击注册
- 预期:Facebook 选项卡应关闭并在注册页面上调用 javascript 回调函数
- 实际:Facebook 选项卡关闭,焦点未返回注册页面
或者,如果您已经有一个帐户,请重复上述步骤,但从http://eventstagr.am/login开始,结果是相同的。