Sag*_*ann 11 iphone mobile facebook web-applications web
我试过关注FB移动网络"入门指南":https: //developers.facebook.com/docs/guides/mobile/web/ 我在iphone上打开全屏的网络应用程序.
但是当我尝试使用打开的fb登录页面登录时,单击"登录"按钮后,我得到一个空白的白色屏幕.用户登录但是..我知道这是因为如果我关闭并重新打开我的网络应用程序,我会检查登录状态并尝试获取一些用户信息,并且它工作正常...
当我在桌面的chrome或我的iphone的safari中尝试相同的Web应用程序时,登录过程就可以了......它只能在全屏web应用程序中打破.
有任何想法吗??我只是关注FB中的示例代码:-(
谢谢.
小智 7
您需要做的就是将"display:'touch'"和redirect_uri参数添加到登录中:
FB.login(function(response) {
if (response.authResponse) {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Good to see you, ' + response.name + '.');
FB.logout(function(response) {
console.log('Logged out.');
});
});
} else {
console.log('User cancelled login or did not fully authorize.');
}
}, {scope: 'email,publish_stream' , redirect_uri: 'YOUR_REDIRECT_URL' , display : 'touch'});
Run Code Online (Sandbox Code Playgroud)
我在这篇文章中找到了一个更好的答案:iOS WebApp的FB.login破解流程
var permissions = 'email,publish_stream,manage_pages,read_stream';
var permissionUrl = "https://m.facebook.com/dialog/oauth?client_id=" + m_appId + "&response_type=code&redirect_uri=" + encodeURIComponent(m_appUrl) + "&scope=" + permissions;
window.location = permissionUrl;
Run Code Online (Sandbox Code Playgroud)
马克上面的答案不再适用了... Facebook倾向于经常破坏这样的事情.使用window.location显示登录页面就可以了.
登录后我的应用需要刷新,所以效果很好.因此,如果您不想刷新,则可能需要重新考虑您的流程.
我找到了解决该问题的方法...似乎有一个未记录的“redirect_uri”属性我可以在 login() 方法中使用,例如
login({scope:'email', redirect_uri:'where_to_go_when_login_ends'})
Run Code Online (Sandbox Code Playgroud)
它是针对 fb 桌面 SDK 的文档,所以我尝试了一下,它确实有效。当我说“有点”时,我的意思是在网络移动设备上,这似乎没问题,但如果您尝试在桌面浏览器中运行它,登录弹出窗口将重定向到登录弹出窗口中的给定网址 - 而不是在其父窗口中。
我希望这足够好并且不会造成任何副作用,我真的不能说。但这是我同时使用的,因为缺乏其他选择:^)
| 归档时间: |
|
| 查看次数: |
19649 次 |
| 最近记录: |