facebook - How to tell when FB.init() completed? How to tell if the user is not connected when to app starts? -


i'm developing using facebook plugin phonegap/cordova. read maybe every single post or example plugin in stackoverflow , wherever, still have unresolved issure.

  1. when app starts, need if user logged in --> continue logged in main page. if user not logged in --> present screen "push connect button login"

now, when app starts- call "fb.init" method. problem is, don't have callback use know when completes, , check login status.

if subscribe auth.statuschange event before fb.init, event raised when user logged in. not enough, because need know when not logged in.

if call "fb.getloginstatus" after fb.init, doesn't work since thing async , tries login status before "fb.init()" completed.

in other words, can't tell when user not logged in when app starts.

thank you, liran.

ok, solved issue right timeout + little things. don't timeout, solution found "unknown" session status moment. here code:

// event rise when fb.init() completed, if user connected         var statuschangeraised = false;         var statuschangehandler = function(session) {             statuschangeraised = true;             console.log('auth.statuschange event callback. session: ' + session.status);              // want handler 1 time             fb.event.unsubscribe('auth.statuschange', statuschangehandler);               handleloginstatus(d, session, true);         };         fb.event.subscribe('auth.statuschange', statuschangehandler);           // phonegap native plugin         fb.init({ appid : _fb_app_id,               nativeinterface : cdv.fb,               status: true,               usecacheddialogs : false });          // callback can trusted if user not connected!         //  * scenario user connected covered auth.statuschange event         fb.getloginstatus(function(session) {             console.log("getloginstatus (just after init) callback. session: " + session.status);              if (session.status === "notconnected") {                 statuschangeraised = true;                 handleloginstatus(d, session, false);             }         });          // timeout handle scenario user "unknown", auth.statuschange didn't rise         //      , getloginstatus cannot truested,         settimeout(function () {              if (!statuschangeraised) {                 fb.event.unsubscribe('auth.statuschange', statuschangehandler);                  fb.getloginstatus(function(session) {                     console.log('fb.getloginstatus (inside timeout after fb.init) callback. session: ' + session.status);                     handleloginstatus(d, session, true);                 });             }         }, 6 * 1000);  

Comments

Popular posts from this blog

ios - UICollectionView Self Sizing Cells with Auto Layout -

node.js - ldapjs - write after end error -

DOM Manipulation in Wordpress (and elsewhere) using php -