0

我有一個Phone Gap Android應用程序,它使用Facebook JS SDK創建Facebook共享對話框。我在3個設備上測試過。它在一臺設備上工作得很好,但另外兩臺設備沒有任何結果。當我按下分享按鈕時,它什麼都不做。FB共享對話框在某些設備上不起作用

我能夠確定FB.getLoginStatus在無法工作的設備上返回「未知」。但是,我通過應用程序內部的登錄對話框登錄到FB。工作設備正確返回「連接」。

另外,Like和Comment功能在所有設備上都能正常工作。

設備正常工作

的Nexus 7 - 5.1.1(FB用戶是FB應用程序的管理員)

設備共享對話框:

銀河趨勢 - 4.0.4(FB用戶是管理員或FB應用開發者)

聯想平板 - 4.1.2(FB用戶與FB應用程序沒有關聯)

的FB應用沒有沙箱,它是活的。

這是我的分享功能。

function sharepost(link,picture,name,description,post_type,page_name){ 

      var description_unes = unescape(description); 
      FB.getLoginStatus(function(response) { 

       if (response.status == 'connected') { 

        var obj = { 
         method: 'feed', 
         link: link, 
         picture: "http://example.com/fb.php?u=hsttps://fbexternal-a.akamaihd.net/safe_image.php?d=AQDQXWajSt1TJxUz&url="+picture, //full_picture 
         name: name, 
         description: description_unes 
        }; 
        FB.ui(
         obj, 
         function(response) { 
          if (response && !response.error_code) { 
           alert('Posting completed.'); 
          } else { 
           alert('Error while posting.'); 
          } 
         } 
        ); 
       } 
      }); 
     } 

有人遇到類似的問題,其行爲根據移動設備的不同(或者我猜android SDK版本?)。非常感謝

更新:我在這裏閱讀FB.getLoginStatus() return "unknown" in Firefox when user is logged在瀏覽器中它與第三方cookie有關,但是當這是一個Android應用程序時,這怎麼可能呢?當我通過應用程序驗證後,狀態爲「已連接」,但當我分享時,狀態變爲「未知」。

回答

0

想出了我自己的問題:)。事實證明,我需要將「true」參數添加到FB.getLoginStatus(),以強制往返FB服務器並檢索正確的狀態。說實話,我不知道爲什麼會這樣,因爲狀態應該被緩存(如果有人知道,請分享)。也許更好的解決方案是在FB.init調用中設置status:true,然後訂閱auth.statusChange(儘管如此,還沒有測試過這個。)

相關問題