我正在开发一个响应式网站,要求用户通过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>