Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Browser 为什么google.com在blackberry&;phonegap与黑莓&;浏览器_Browser_Blackberry_Touchscreen_Cordova_Rim 4.7 - Fatal编程技术网

Browser 为什么google.com在blackberry&;phonegap与黑莓&;浏览器

Browser 为什么google.com在blackberry&;phonegap与黑莓&;浏览器,browser,blackberry,touchscreen,cordova,rim-4.7,Browser,Blackberry,Touchscreen,Cordova,Rim 4.7,我正准备在blackberry storm(9530模拟器)上启动phonegap并运行它。我一直在用ING BB的内置浏览器测试我的网络应用程序,它看起来还不错,但当我试图从phonegap中查看一些代码时,它完全崩溃了,尽管我将phonegap指向同一个url(我还没有在设备上本地运行代码) 我在谷歌上试过一个测试用例,得到了相似的结果。见下文。我怀疑我遗漏了一些基本的东西。我希望这两张照片几乎是一样的 浏览者 音差 [更新] 为了了解正在发生的事情,我针对W3 mobile web a

我正准备在blackberry storm(9530模拟器)上启动phonegap并运行它。我一直在用ING BB的内置浏览器测试我的网络应用程序,它看起来还不错,但当我试图从phonegap中查看一些代码时,它完全崩溃了,尽管我将phonegap指向同一个url(我还没有在设备上本地运行代码)

我在谷歌上试过一个测试用例,得到了相似的结果。见下文。我怀疑我遗漏了一些基本的东西。我希望这两张照片几乎是一样的

浏览者

音差

[更新] 为了了解正在发生的事情,我针对W3 mobile web acid测试运行了浏览器和嵌入式浏览器(phonegap): 我当然注意到两者之间的差异,但我还不知道“为什么”和“如何解决”

通过内置浏览器访问Acid
(来源:)
顺便说一句,我今天早些时候运行了这个,得到了比刚才更多的绿色广场

Acid通过嵌入phonegap的浏览器

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

我不知道您正在使用的浏览器的细节,但我知道大多数大型网站都会检测您的OS+浏览器组合,以决定向您显示什么HTML

如果谷歌看到的是另一个用户代理,你可能会得到一个通用的移动版本的HTML,而不是内置浏览器中黑莓特有的HTML


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

我们可以从你的酸性测试中看到

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


听上去,使用phonegap就是删除默认的用户代理(很可能是因为它无法识别您的设备)。由于phonegap是开源的,最好的办法是进入其中,调试它,并找出当http请求离开设备并从那里跟踪它时,用户代理会发生什么情况。

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

在去年的黑莓开发者大会上,有人谈到了这一点,并且有一个未经证明的选项可以使用新的渲染引擎\

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

BrowserContent content;
...
content.getRenderingOptions().setProperty(RenderingOptions.CORE_OPTIONS_GUID, 17000, true);

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

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


只有我的0.02美元。

对-但是,。。它不应该是同一个浏览器吗?通过类比,在iphone上通过mobile safari浏览google应该会产生与嵌入式UIWebView相同的页面,该UIWebView也指向同一个google页面。虽然用户代理显然是问题的一部分,但这并不能解释acid结果的差异,在我自己的代码中,它不使用浏览器检测,结果仍然有很大的不同。这看起来很有希望-我会很快研究它。好的-所以我没有很快得到它,但这基本上是正确的。最新的phonegap实现了这一技术,但它们的语法略有不同。@JJRohrer-我面临着类似的问题,尽管这是一个很长的时间。你能告诉我你是怎么解决的吗?我想通过黑莓手机上的PhoneGap实现的一些功能现在也可以通过他们的小部件来实现,这些小部件使用的是功能更丰富的browser.JJ——你能详细说明一下吗?特别是哪些小部件?你有链接吗?@Axeva-现在有点被事件所征服了。这实际上只适用于较旧的BB版本。