我在网站上有一个 Facebook 应用程序,它通过 javascript sdk (FB.login()) 打开标准登录弹出窗口。代码非常简单和标准:
<script>
window.fbAsyncInit = function() {
window.tryInit = window.setInterval(function() {
if (typeof FB !== 'undefined') {
console.log('FB loaded');
window.clearInterval(window.tryInit);
FB.init({
appId: ...,
channelUrl: ...,
status: true,
cookie: true,
xfbml: true
});
} else {
console.log('FB not loaded yet');
}
}, 100);
}
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<script src="//code.jquery.com/jquery-latest.min.js"></script>
<script>
jQuery(function($) {
$('a#login').click(function() {
FB.login(function(response) {
alert("OK");
});
});
});
当我尝试在带有 Chrome 浏览器的 iPad 2 上使用登录功能时,它会打开一个新选项卡,尝试连接到 Facebook url (m.facebook.com/dialog/oauth ...),但这会导致空白页,可能是在发生某种错误之后。相同的链接可以在具有 Safari 浏览器的相同平板电脑以及台式机和智能手机上正常工作。
有没有其他人遇到过同样的问题?有什么建议吗?
感谢你们!
编辑:同样的问题发生在带有 Chrome 的 iphone4 上,但不是 Safari。