Android应用在onDeviceReady
事件中返回无效大小(320x480),但几秒后大小变得正确。
我们如何在一开始就获得正确的尺寸?或者是否有任何我可以获得正确尺寸的事件?
我正在使用此功能来获取尺寸:
function getWindowSizes() {
var windowHeight = 0, windowWidth = 0;
if (typeof (window.innerWidth) == 'number') {
windowHeight = window.innerHeight;
windowWidth = window.innerWidth;
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
windowHeight = document.documentElement.clientHeight;
windowWidth = document.documentElement.clientWidth;
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
windowHeight = document.body.clientHeight;
windowWidth = document.body.clientWidth;
}
return [windowWidth, windowHeight];
}
视口:
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
使用Cordova 2.5.0。
UPD:
正如您在此屏幕截图中看到的,应用程序以较小的尺寸启动。即使是空的Cordova项目也是如此。我该如何解决这个问题?
谢谢!
答案 0 :(得分:3)
删除元标题索引的高度,宽度和密度属性。
答案 1 :(得分:1)
尝试删除标题中的target-densitydpi。
设备dpi基于物理像素,而css像素是逻辑像素,它们彼此不同,如果你强制它们相同,你会看到屏幕被拉伸。
window.devicePixelRatio可以为您提供转换结果。(在webkit上)
更新
此链接提供了有关其工作原理的更多详细信息: https://petelepage.com/blog/2013/02/viewport-target-densitydpi-support-is-being-deprecated/
答案 2 :(得分:0)
尝试删除app类中的position:absolute属性(在index.css中)。这对我有用。