使用PhoneGap在所有设备上保持不变的视口大小

时间:2013-01-28 23:08:53

标签: android cordova viewport

我有PhoneGap Android应用程序正好是480像素宽度,我想在每个可能的Android设备上将视口大小设置为这个大小

我试过这个标签:

<meta name="viewport" content="width=480, user-scalable=no" />

但是我测试过的所有设备和模拟器都忽略了它。然后我试了一下:

<meta name="viewport" content="width=device-width, initial-scale=0.67, minimum-scale=0.67, maximum-scale=0.67, user-scalable=no, target-densityDpi=device-dpi" />

这很有用,但只适用于某些(较小的)设备。在mu Samsung GT上,它提供了正确的480像素宽度视口,但是当在平板电脑上启动时,它提供了800像素宽度的视口。

我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:2)

经过几个小时的调试后,我终于找到了解决方案:

WebView 忽略视口的宽度,除非它被告知要在OverviewMode中加载。所以,如果有人从谷歌来到这里,这就是解决方案:

添加到Java源代码:

public class YourGame extends DroidGap
{       
    super.onCreate(savedInstanceState);
    super.init(); // Don't forget this, you'll get runtime error otherwise!

    // The following does the trick:
    super.appView.getSettings().setUseWideViewPort(true);
    super.appView.getSettings().setLoadWithOverviewMode(true);

    super.loadUrl("file:///android_asset/www/index.htm");
}

答案 1 :(得分:2)

不确定原因,但我必须从视口标记中删除, target-densityDpi=device-dpi才能使其生效 - 接受的答案对我没有帮助。

使用Samsung Galaxy Nexus