3
對於我們使用Facebook Javascript SDK的移動Web應用程序,我們希望檢查用戶的登錄狀態,並在必要時顯示Facebook登錄對話框。下面的代碼是在我們的網絡應用程序中單擊處理程序中運行,給定按鈕:FB.login()彈出窗口僅在移動Web應用程序中被阻止
$('#button').click(function() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
// do something with the logged in and authorized user
} else if (response.status === 'not authorized') {
// logged in but has not authorized our app
} else {
// not logged in
FB.login();
}
});
});
確保用戶沒有登錄到Facebook上,這工作得很好,並顯示登錄對話框的桌面Web瀏覽器時,該按鈕被按下,但不是移動網頁(至少在各種瀏覽器上不適用於Android,我目前無法使用iPhone)。移動網絡應用程序上沒有任何內容,當我禁用彈出窗口阻止程序時,則會收到提示,詢問是否允許此彈出窗口,該窗口有效。
有誰知道爲什麼行爲不同和/或已知/標準解決方法是什麼?謝謝!
嗨吉爾,感謝您的回覆。我正在更新代碼,因爲我忘記指定代碼被調用以響應用戶的點擊。如果用戶點擊觸發了一個AJAX調用(FB.getLoginStatus),它的響應觸發了實際的彈出窗口(FB.login),這將如何影響彈出窗口阻止? – aarontam 2012-08-01 20:04:52
我說的仍然適用。由於您從*回調*函數調用'FB.login()',瀏覽器認爲這與用戶的*單擊*操作是分開的。 – 2012-08-01 20:06:32
Gotcha。我們正試圖避免讓用戶點擊另一個按鈕,所以我會探索改善這種流程的另一種方式。 – aarontam 2012-08-01 20:09:31