iPad上的iOS UIWebView窗口宽度和高度

Posted

技术标签:

【中文标题】iPad上的iOS UIWebView窗口宽度和高度【英文标题】:iOS UIWebView window width and height on iPad 【发布时间】:2012-04-17 20:11:02 【问题描述】:

所以我正在创建一个全屏广告,该广告在一个未命名的应用程序的 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

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

【问题讨论】:

如果你唯一的问题是滚动,为什么不在 webView 的 scrollView 上禁用滚动呢?然后,无论文档大小如何,都只会显示您的内容。 这不是我的应用程序。我只是在里面跑。 【参考方案1】:

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

长话短说,我能够做到:

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

【讨论】:

以上是关于iPad上的iOS UIWebView窗口宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

通用 iOS 应用程序:详细视图控制器中的 UIWebView 不显示 iPad 部分的内容

iPad (iOS6) 上的 Safari 无法缩放 HTML5 视频以填充 100% 的页面宽度

Xcode Storyboard 新项目全宽和高

iPad 上的 iOS 4.2 中缺少图像

如何在 iPad 上的 UIWebView 中上传文件?

UIWebView 的 allowInlineMediaPlayback 属性在 iPad 上的 4.2 上不起作用