2011-11-02 105 views
0

我正在學習將facebook sdk整合到現有的android應用程序中。我相信我的一切運行良好,但是,我的應用程序每當我的應用程序加載時都會顯示一個帶有進度加載器的空白Facebook頁面。這是故意的嗎?該頁面可以隱藏嗎?Android + Facebook +在應用程序加載時隱藏Facebook屏幕?

public class MainActivity extends ListActivity{ 
    Facebook facebook = new Facebook("***************"); 
    String FILENAME = "AndroidSSO_data"; 
    private SharedPreferences mPrefs; 
    ... 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 

      /* 
      * Get existing access_token if any 
      */ 
      mPrefs = getPreferences(MODE_PRIVATE); 
      String access_token = mPrefs.getString("access_token", null); 
      long expires = mPrefs.getLong("access_expires", 0); 
      if(access_token != null) { 
       facebook.setAccessToken(access_token); 
      } 
      if(expires != 0) { 
       facebook.setAccessExpires(expires); 
      } 

      /* 
      * Only call authorize if the access_token has expired. 
      */ 
      if(!facebook.isSessionValid()) { 

       facebook.authorize(this, new DialogListener() { 
        @Override 
        public void onComplete(Bundle values) {} 

        @Override 
        public void onFacebookError(FacebookError error) {} 

        @Override 
        public void onError(DialogError e) {} 

        @Override 
        public void onCancel() {} 

       }); 
      } 
    ... 
    //thread is created here to populate listview data 
    } 
} 

更新:我現在有鑰匙散列工作。在我的列表視圖顯示之前,我仍然可以看到帶有進度加載器的默認Facebook頁面。每次我現在啓動應用程序時,我還會看到「權限」頁面。

NEW UPDATE: 當我從應用程序中跟蹤facebook.isSessionValid()時,我收到「false」的同時登錄官方FB應用程序(在模擬器上)。這是一個錯誤?任何額外的幫助表示讚賞!

+0

這是Facebook登錄期間嗎?如果您可以更清楚地瞭解您的應用在這一點上做了什麼/共享您的代碼,這將有所幫助? – Torid

+0

當應用程序加載時,它從字符串xml收集數據並填充ListView。這個動作發生在一個單獨的線程中。用戶已登錄,但在我的列表顯示之前,我仍然看到一個Facebook加載頁面。 – worked

回答

0

如果設備不支持一鍵登錄(在這種情況下,它會暫時將您帶到facebook應用程序),則facebook.authorize將創建一個對話框。該對話框使用WebView連接到移動友好的Facebook登錄頁面,併爲您處理所有事情,並通過DialogListener進行報告。

由於在您的onCreate方法中調用了授權,所以無論何時第一次啓動Activity(並且sesson無效),它都會顯示對話框。

+0

我現在想知道,即使我的關鍵哈希在這一點上工作。我正在測試android fb sdk自帶的例子,並且我繼續收到「Login Failed:Invalid_Key」錯誤。 – worked

+0

您的Facebook密鑰必須鏈接到您簽署該版本的證書 - 在開發過程中,這可能是您的Debug .keystore。你必須在臉書上註冊,但我猜你已經完成了,因爲你已經有了鑰匙。 我幫助一位同樣有類似問題的朋友回來,他會與他一起檢查他是如何解決這個問題的。 – FunkTheMonk

+0

非常感謝,謝謝! – worked

相關問題