BrowserField在BlackBerry 7中崩溃

时间:2012-01-27 14:13:05

标签: blackberry browserfield

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

我注意到验证过程进展顺利,因为我从Facebook收到一条登录信息,所以我怀疑浏览器领域和/或模拟器的问题。 (我尝试了3种不同的BB 7模拟器,尽管如此)。

任何人都有办法解决这个问题?非常感谢你。

1 个答案:

答案 0 :(得分: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中。然后,应用程序正常工作。