2012-01-27 47 views
1

我正嘗試在BlackBerry 9930模擬器上創建一個應用程序,該應用程序使用BlackBerry Facebook API對Facebook用戶進行身份驗證。它連接到登錄頁面,但在此之後整個應用程序崩潰,無論是在查詢權限還是登錄成功時。BrowserField在BlackBerry 7中崩潰

我注意到身份驗證過程進行得很順利,因爲我從Facebook收到一條消息,說有一個登錄名,所以我懷疑browserField和/或模擬器有問題。 (我嘗試了3種不同的BB 7模擬器,儘管如此)。

任何人都有辦法解決這個問題?非常感謝。

回答

1

似乎沒有人對我有任何解決方法:(但是,在弄亂它後,我找到了一個解釋和解決方案,我想我應該與你分享這個。響應,雖然。

這裏的故事。

正如你可能已經知道,提供的憑據後,Facebook的返回URI中的訪問令牌之後是#號。現在,黑莓的Facebook API覆蓋了handleNavigation()方法,以確保如果URL包含訪問令牌,它將不會被處理。它用於早期版本(在BB 7之前),但不知何故,似乎URL重定向在BrowserField不再調用handleNavigation(),而是直接調用handleResource()(我不知道爲什麼,據我所知,這個改變沒有任何文檔在任何地方)。結果?它總是試圖處理其中包含#access_token的URL。

最糟糕的是,BB BrowserField認爲#表示跳轉到頁面的一部分(不存在)。其他瀏覽器(包括BlackBerry瀏覽器)似乎已經理解,並且只在屏幕上打印「Success」,而BrowserField則不打印。當發生這種情況時,應用程序停止工作並崩潰,將我送回主屏幕。

所以我所做的是我更改了BlackBerry Facebook API的源代碼,以便handleResource()現在自行檢查access_token是否在URL中。然後,應用程序正常工作。