2011-11-10 109 views
2

我在移动应用中使用它,如果用户在同一窗口中远离应用导航,然后重定向,它实际上会是更好的用户体验背部。FB.login,防止启动新窗口,在当前窗口中导航

我们将登录页面重定向回到我们的应用程序工作,但是当他们点击登录时防止打开新窗口的最佳方法是什么?

这是通过facebook的LIB中美味的CoffeeScript提供的方法 -

FF.login = (a, b) -> 
    if FB._oauth 
    throw new Error("OAuth2 specification states that 'perms' " + "should now be called 'scope'. Please update.") if b and b.perms 
    FB.ui FB.copy(
     method: "permissions.oauth" 
     display: "popup" 
    , b or {}), a 
    else 
    FB.ui FB.copy(
     method: "permissions.request" 
     display: "popup" 
    , b or {}), a 

是那里display: "popup"替代将触发导航窗口?

还是我们可以通过的参数?

编辑:

我发现这个在FB.ui方法:

"display" must be one of "popup", '+'"dialog", "iframe", "touch", "async", "hidden", or "none"'

我需要直接编辑登录方法还是可以通过在这些显示选项PARAMS ?

EDIT2:我想我可以做到这一点?

window.location='https://www.facebook.com/login.php?api_key=YOUR_API_KEY&cancel_url=YOUR_ESCAPED_CANCEL_URL&fbconnect=1&next=THE_ESCAPED_URL_TO_RETURN_TO_AFTER_LOGIN&return_session=1&session_version=3&v=1.0&req_perms=ESCAPED_LIST_OF_REQUIRED_PERMISSIONS' 

任何方式使现有的FB.login方法更好地工作?

谢谢!

+0

我认为当用户点击登录时,我们可以使页面无显示,并使用一些像fadein或fadeout这样的jQuery的东西在同一页面显示登录组件。它看起来非常简单和丰富的AFAIK。 :-) – Unknown

+0

很酷,你能详细说说这个技巧吗?听起来像我们正在寻找的东西。 – fancy

+0

我实际上也发现与一个wondow.location开关,如果它与客户端的Facebook,JS SDK一起工作。 – fancy

回答

2

Facebook已经更新关键字“烫发”到“范围”,而迁移到OAuth2.0的,请修改关键字“烫发”到“范围”

*旧代码://},{烫发:“ read_stream,publish_stream,offline_access'});

新代码:},{范围: 'read_stream,publish_stream,offline_access'}); *

就发表评论或删除旧的烫发到范围。