【问题标题】:JavaScript+Phonegap+Android: screen.width returns bad (almost random) valuesJavaScript+Phonegap+Android:screen.width 返回错误(几乎是随机)值
【发布时间】: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:

  1. 320
  2. 787
  3. 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


【解决方案1】:

有一篇综合文章(+不同值的比较表)你应该阅读:http://tripleodeon.com/2011/12/first-understand-your-screen/

希望这对您的问题有所帮助。

【讨论】:

    猜你喜欢
    • 2011-01-09
    • 2021-06-09
    • 2020-08-28
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 2019-01-11
    • 2019-09-26
    • 1970-01-01
    相关资源
    最近更新 更多