我在iOS8上测试我的网络应用登录流程。我注意到在iOS8上,登录对话框弹出,但登录后,它只是停留在那里,显示一个空白页面。
登录有效,因为它后面的页面显示了用户信息,但弹出窗口只是停留在那里,而它应该自动关闭。在iOS7和iOS6上,它确实关闭了。在桌面浏览器上它也会关闭。
我使用FB.login()
测试了其他一些随机网站(例如brainfall.com):同样的事情。
有没有人对此有解决方法?
非常感谢任何帮助!
答案 0 :(得分:1)
检查一下: fb_window_redirect
覆盖de window.open方法。这可以让您知道打开了哪些窗口。
然后您可以重定向FB SDK打开的窗口。
...
window._open = window.open; // saving original function
//Override the function
window.open = function(url,name,params) {
var new_window = window._open(url,name,params);
if (typeof onWindowOpen === "function") {
onWindowOpen(url, name, params, new_window);
}
return new_window;
};
...
var openedWindows = [];
var fbWindows = [];
function onWindowOpen(url, name, params, new_window) {
...
// Filter the facebook oauth request
if (url.contains('facebook.com')
&& url.contains('oauth')) {
fbWindows.push(new_window);
}
openedWindows.push(new_window);
}
...
//On fb login button pressed callback:
FB.login(function(response) {
//Try login
if(response.authResponse) {
//Login succesful
// Fb window redirect.
// see onWindowOpen
var fbwin = fbWindows[0];
var redirect_url = ''
fbwin.location = redirect_url;
}
},
{scope: 'email,publish_stream,user_birthday'});
...