1

从果冻豆开始,我的 webapp 和 webview 中的视口渲染出现问题。

通常我使用带有这个参数的元视口来修复我的内容并有一个好的设计:

name="viewport" content=" width=device-width; 
                initial-scale=1.0; 
                maximum-scale=1.0; 
                user-scalable=no;
                target-densityDpi=device-dpi;

但是对于 Jelly Bean,似乎不支持或忽略属性“target-densityDpi”。在galaxy nexus(720px*1280,设备像素比为2)上,窗口宽度大小为360px 而在galaxy nexus S(480*800,设备像素比为1.5)上,窗口宽度大小为360px。

我在 Android 开发者的网站上没有找到有关此主题的任何帮助或信息。

那么,目标密度真的被忽略了吗??一个技巧可以强制 deviceDPi 吗?还是默认情况下我们被迫使用中密度屏幕?

如果有人有解决方案?谢谢!

4

2 回答 2

0

这是一个老问题,但问题可能在于分号的使用。将分号更改为常规逗号并删除最后一个分号。

我在我的应用程序中使用以下视口元标记,它在 Jelly Bean 中正常工作。

<meta name="viewport" content="width=device-width, target-densitydpi=device-dpi, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
于 2013-01-09T17:17:19.100 回答
0

我使用这个 jQuery 在最新的 Chrome for Android 上实现了同样的事情:

<meta content='user-scalable=no, initial-scale=1, width=device-width' id='viewport' name='viewport'>

var viewPortScale = 1 / window.devicePixelRatio;

$('#viewport').attr('content', 'user-scalable=no, initial-scale='+viewPortScale+', width=device-width');

这会将初始比例视口元标记设置设置为 1 CSS 像素 == 1 设备像素的正确比例。

您不能使用 'width='+screen.width 因为 screen.width 不返回物理像素尺寸。我尝试在 Chrome 中的 Nexus 7 上使用http://responsejs.com/labs/dimensions/ ,所有数字都是视口像素。

于 2013-03-13T22:32:45.283 回答