0

編譯應用程序,我試圖編譯它使用的Facebook的Javascript SDK我的應用程序時,偶然發現了一個問題,使用Facebook的SDK的Javascript

... 


<script id="microloader" type="text/javascript" src="sdk/microloader/development.js"></script> 

    <!-- dependencies --> 
    <script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : 'XXXXXXXXXXXXX', // App ID 
     channelUrl : '//payme.com:3000/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
     }); 

     // Additional initialization code here 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement('script'); js.id = id; js.async = true; 
     js.src = "//connect.facebook.net/en_US/all.js"; 
     ref.parentNode.insertBefore(js, ref); 
    }(document)); 
    </script> 
... 

Home.js(其中捕獲錯誤時)

... 
    config: { 
    controls: { 
     mainView: { 
     initialize: 'initView' 
     } 
    } 
    }, 

    initView: function() { 
    var me = this; 

    FB.getLoginStatus(function(response) { 
     if(response.status === 'connected') {  
     ... 
     } else { 
     ... 
     } 
    }); 
    }, 
... 

我試圖加載的Facebook SDK異步和同步,把腳本標記之後和微加載之前,但沒有任何工程。

有關如何解決這個問題的任何想法?

回答

1

您正在加載Facebook JavaScript SDK異步並且可能在加載SDK之前調用方法FB.getLoginStatus。在加載SDK之後調用方法FB.getLoginStatus(即在您有// Additional initialization code here的行上)

+0

它可以工作,但只有當我異步加載SDK時... –