Javascript 当移动浏览器上没有设置facebook cookie时,FB.login url将提供空白页面
当starange试图在mobile Safari和Android浏览器上使用javascript SDK登录facebook时,发生了一些事情。当我清除“历史记录”和“cookies和数据”并尝试使用FB.login方法登录Facebook时,Safari和Android浏览器会打开一个带有auth url的新选项卡,但保持空白。在所有的桌面浏览器中,一切正常 奇怪的是,当我清除我的“历史记录”和“cookies和数据”,然后访问facebook.com(不登录或其他任何东西),关闭网站,打开我的网站,然后尝试登录到FB时,它实际上是正常工作的 因此,这看起来像是facebook.com设置了一个cookie,使认证URL成功加载 我已经到处寻找这个问题的解决方案,但找不到任何东西,因此我的第一个stackoverflow帖子 作为补充,以下是我用于初始化FB SDK的代码:Javascript 当移动浏览器上没有设置facebook cookie时,FB.login url将提供空白页面,javascript,mobile,facebook-javascript-sdk,Javascript,Mobile,Facebook Javascript Sdk,当starange试图在mobile Safari和Android浏览器上使用javascript SDK登录facebook时,发生了一些事情。当我清除“历史记录”和“cookies和数据”并尝试使用FB.login方法登录Facebook时,Safari和Android浏览器会打开一个带有auth url的新选项卡,但保持空白。在所有的桌面浏览器中,一切正常 奇怪的是,当我清除我的“历史记录”和“cookies和数据”,然后访问facebook.com(不登录或其他任何东西),关闭网站,打开
window.isFacebookSDKLoaded = false;
window.onFacebookSDKLoaded = function () {}; //is injected with a function from another js app on the site
window.fbAsyncInit = function() {
FB.init({
appId : '{{ appID }}', // App ID
channelUrl : '{{ baseUrl }}channel.php', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
window.isFacebookSDKLoaded = true;
window.onFacebookSDKLoaded();
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
在我的应用程序中的其他地方,我只需执行以下操作:
(使用谷歌闭包)
如果有人有解决办法。。。提前谢谢我对空白屏幕也有同样的问题。只是试图通过登录到Facebook网站来复制您的条件,但我还是得到了空白屏幕。
mm.controller.facebook.DoFBLogin.prototype.doLogin = function ()
{
FB.login( goog.bind( this.loginResult, this ), { scope: app.Config.getFBPermissions() } );
}
mm.controller.facebook.DoFBLogin.prototype.loginResult = function ( result )
{
// logged in
};