1

我正在尝试在 BlackBerry 9930 模拟器上创建一个应用程序,该应用程序使用 BlackBerry Facebook API 对 Facebook 用户进行身份验证。它可以很好地连接到登录页面,但之后整个应用程序崩溃,无论是在要求查看权限还是登录成功时。

我注意到身份验证过程进行得很顺利,因为我收到了来自 Facebook 的消息说有登录,所以我怀疑 browserField 和/或模拟器的问题。(我尝试了 3 个不同的 BB 7 模拟器,但都一样)。

有人有办法解决这个问题吗?非常感谢。

4

1 回答 1

1

似乎没有人对我有任何解决方案:(。但是,在搞砸之后,我找到了一个解释和解决方案,我想我应该和你分享这个。抱歉,回复晚了.

这是故事。

您可能已经知道,在提供凭据后,Facebook 在 URI 中返回访问令牌,后跟 # 符号。现在,BlackBerry Facebook API 覆盖了 handleNavigation() 方法,以确保如果 URL 包含访问令牌,则不会对其进行处理。这曾经在早期版本(BB 7 之前)中工作,但不知何故,BrowserField 中的 URL 重定向似乎不再调用 handleNavigation(),而是直接调用 handleResource()(我不知道为什么,据我所知,任何地方都没有关于此更改的文档)。结果?它总是尝试处理其中包含 #access_token 的 URL。

最糟糕的是,BB BrowserField 认为 # 表示跳转到页面的一部分(不存在)。其他浏览器(包括黑莓浏览器)似乎已经理解并在屏幕上仅打印“成功”,而 BrowserField 则没有。当这种情况发生时,应用程序停止工作并崩溃,让我回到主屏幕。

所以我所做的是我更改了 BlackBerry Facebook API 的源代码,以便 handleResource() 现在自行检查 access_token 是否在 URL 中。然后,应用程序工作正常。

于 2012-01-30T15:52:25.397 回答