【发布时间】:2012-07-16 12:03:40
【问题描述】:
在启动带有“deviceready”事件的应用程序后,我在 Android 上的 Phonegap 应用程序在 ZTE Blade(本机 800 像素)上返回错误的 screen.width(window.innerWidth 相同)值。多次询问时,我会得到 320、533 或 787 像素等宽度值,有时在一个应用实例(启动)中会出现不同的值...
我的 AndroidManifest.xml 中有 android:screenOrientation="landscape"。在 Eclipse (Indigo) 中使用 Phonegap/Cordova 1.8.1。
screen.width的一些示例值:
在 index.html 中
- 在 document.addEventListener+"deviceready": 320 之前
- 就在“设备就绪”之后:320
然后重定向 3 次(将 window.location 更改为不同的 HTML 文件),因为 2 个闪屏,最后到达 main.html。我在每个文件中都包含我的 .js 代码只是为了调试,并获得 3 个 console.logs:
- 320
- 787
- 787
很奇怪……
【问题讨论】:
-
能否提供代码示例?如果可能的话,也许可以用一张图片向我们展示你所看到的。
-
我使用 console.log(screen.width);用于记录...
-
我怀疑 window.location 更改可能是问题所在(重定向到一个应用程序中的另一个 html 文件)。最近我遇到了声音问题,我通过放弃位置重定向并将所有内容合并到单个 HTML 文件中来解决。
-
您找到解决此问题的方法了吗?我的应用提供了 320x240,但一段时间后它提供了正确的尺寸。
-
我真的不记得我是如何解决这个问题的。我很可能把它放在一边,因为我并不急于寻求解决方案,因为该设备(ZTE Blade)不是参考设备,而是三星 Galaxy Tab 10.1。然而,在几次 PhoneGap/Cordova 升级和手机升级(包括硬件和软件)之后,我再也没有遇到过这个问题——我现在在三星 Galaxy S3 mini (GT-I8190) 上使用 Cordova 3.5 进行开发。我猜这可能是 Cordova 中的一个错误,因为我猜他们并不真正关心旧的 Android 版本(Blade 有 2.1-2.3)。您的硬件和软件配置是什么?
标签: javascript android css cordova width