2

因此,我正在创建一个在未命名应用程序中的 UIWebView 内运行的全屏广告。基本上,我根本无法修改视口元标记,所以我的应用程序需要精确到 1023x767 才能全屏显示,并且不会在 web 视图中滚动。它在 95% 的时间里都有效,除了一个触发奇怪错误的场景。如果我从横向开始,然后旋转到水平,我可以在 webview 周围滚动应用程序,就好像它比视口大一样。

在 CSS 中,我有:

@media only screen and (orientation: portrait) {
    html, body {
        width: 767px;
        height: 1023px;
        overflow:hidden;
        position:relative;
    }
}

@media only screen and (orientation:landscape) {
    html, body {
        width: 1023px;
        height: 767px;
        overflow:hidden;
        position:relative;
    }
}

我正在检测方向变化的事件,我得到:

$('html').width() = 767
$('html').height() = 1023
$('body').width() = 767
$('body').height() = 1023

但是,我发现我同时也得到了这个,这显然是问题所在,但我不知道为什么或如何解决它:

$(window).width() = 1023
$(window).height() = 1365

有什么想法吗?任何人!?:-)

4

1 回答 1

2

因此,通过更多研究,我无法使用 veiwport 元标记来建立 width=device-width 的原因是因为视口实际上设置为比设备宽度小 1px。然后,您将在该死像素区域的视口中滚动。该应用程序检测到左右滑动以在不同的 web 视图之间进行更改,因此您无法执行“e.preventDefault()”来禁用滚动,并且将其卡在 1px 的滚动中会破坏应用程序中的滑动功能。

长话短说,我能够做到:

viewport=(device-width-1) 并解决了这个问题。该应用程序的人们不知道这是可能的,我什至不确定这样的事情是否可能,但它做到了,所以刷卡仍然可以发生,因为你没有被困在那个死角中。

于 2012-04-19T20:15:13.923 回答