3

我很想在黑莓风暴(9530模拟器)上启动并运行phonegap。我一直在使用 BB 的内置浏览器测试我的 webapp,它看起来还不错,但是一旦我尝试从 phonegap 中查看一些代码,它就完全有点问题了,即使我将 phonegap 指向相同的 url(我没有'还没有达到在设备上本地运行代码的地步)。

我在谷歌上尝试了一个测试用例并得到了类似的结果。见下文。我怀疑我在这里遗漏了一些基本的东西。我本来希望两个图像几乎相同。

浏览器 http://www.eleganttechnologies.com/outside/ImgDeviceBB9530WebGoogle.jpg

Phonegap http://www.eleganttechnologies.com/outside/ImgDeviceBB9530PgGoogle.jpg

[更新]为了了解正在发生的事情,我针对 W3 移动网络酸性测试运行了浏览器和嵌入式浏览器 (phonegap):http: //www.w3.org/2008/06/mobile-test/ 我肯定会注意到两者之间的差异,但我还不知道“为什么”和“如何解决”。

Acid 通过内置浏览器 (来源:eleganttechnologies.com 顺便说一句 - 我今天早些时候运行了这个,比刚才多了几个绿色方块。

通过浏览器嵌入 phonegap 的酸 http://www.eleganttechnologies.com/outside/ImgDeviceBb9530PgAcid.jpg

4

5 回答 5

4

免责声明:我对phonegap一无所知,但有一个很好的理论。默认情况下,BlackBerry 上的嵌入式浏览器控件使用比 BlackBerry 浏览器本身更旧版本的呈现引擎。

在去年的 BlackBerry 开发者大会上,对此进行了讨论,并且有一个未记录的选项可以使用更新的渲染引擎。\

选项 ID 为 17000(是的,一个幻数,可能会更改,使用风险自负等),应设置为 true。不确定如何通过 phonegap 传递此选项(我不熟悉该工具包),但使用 BlackBerry API 类似于:

BrowserContent content;
...
content.getRenderingOptions().setProperty(RenderingOptions.CORE_OPTIONS_GUID, 17000, true);
于 2009-05-11T14:11:01.043 回答
2

我不知道您正在使用的浏览器的具体情况,但我知道大多数大型网站都会检测您的操作系统 + 浏览器组合来决定向您显示哪些 HTML。

如果 Google 看到不同的用户代理,您可能会获得 HTML 的通用移动版本,而不是您为内置浏览器获得的黑莓特定 HTML。

如果您可以访问 Web 服务器,请尝试使用两种浏览器设置来访问它,并查看日志文件中是否有任何差异。这可能会告诉你一些有趣的事情。

于 2009-05-08T03:30:53.090 回答
1

正如我们在您的酸测试中看到的那样......

一个浏览器(内置浏览器)正确报告为 BlackBerry9530,而另一个(phonegap)未显示用户代理 [“Testing with .”]。在这种情况下,Google 为您提供其主页的默认视图,而当您将自己报告为 BlackBerry 设备时,您将获得 BlackBerry 特定的呈现。

从事物的声音来看,使用 phonegap 正在删除默认的用户代理(很可能是因为它无法识别您的设备)。由于 phonegap 是开源的,最好的办法是进入那里,调试它并找出当 http 请求离开设备并从那里跟踪它时用户代理会发生什么。

于 2009-05-08T04:50:17.953 回答
0

也许一种浏览器具有另一种浏览器没有的功能?

于 2009-05-08T03:23:09.987 回答
0

嗯。通过查看屏幕截图,我会说第二页可能缺少一些资源。它可能缺少一些图像、脚本和 CSS 文件,这将解释不同的 l&f。知道黑莓浏览器字段 API 是如何工作的,我猜想使用 BrowserField 的实现没有正确完成。只是我的猜测。除此之外,当浏览器字段被初始化时,调用者需要通过启用适当的浏览器功能来正确配置它——脚本、样式等。同样,API 是以一种非常奇怪的方式完成的,我曾经让自己陷入这个陷阱. 设置选项时,您不能只创建一个掩码(如 CSS | WML | SCRIPT)并进行一次调用。选项是数字的,我相信是不重叠的——但您仍然需要调用 API 来独立设置每个选项。

此外,BrowserField 资源的异步加载方式也需要时间来理解。

只是我的 0.02 美元。

于 2011-10-27T12:47:08.707 回答