仅 iPhone 应用程序中的 UIWebView 显示在 iPad 上
Posted
技术标签:
【中文标题】仅 iPhone 应用程序中的 UIWebView 显示在 iPad 上【英文标题】:UIWebView in iPhone only app displayed on iPad 【发布时间】:2012-08-30 09:45:56 【问题描述】:我有一个关于在 iPad 上显示的 iPhone 应用程序(不是通用 iPhone/iPad)中的 UIWebView 的问题。有一些方法可以将应用程序视为 iPhone 视网膜应用程序 (960x640),但是我无法找到在 iPad 上以与在 iPhone 上显示相同的方式显示 UIWebView 的方式。整个视图和字体都是模糊的,因为 UIWebView 认为它不是视网膜显示。
有没有办法让它认为它是视网膜显示并渲染 960x640 而不是 480x320 放大?
UIWebView contentScaleFactor 属性没有改变任何东西。该网站在 iPhone 4 上完美运行,具有正确的字体和视网膜图像。如果我将 UIWebView 框架设置为 (0, 0, 960, 640) 并按比例缩小,那么网站上的所有内容也会按比例缩小,所以我认为这不是正确的方式。
编辑: 作为内容,我正在加载一个本地站点,该站点完美地显示在 iPhone/iPhone(视网膜)上:
html 的正文部分:
(...)
<body>
<h1>Header</h1>
<p>Some paragraphs</p>
<img src="image.png" width=250px height=200px/>
</body>
(...)
样式.css:
body
width:400px;
height:100%;
编辑2: 这是我得到的screenshot 的链接 - 在 iPad 上,iPhone 视网膜 UIWebView 像在 iPhone 上一样显示并放大了两次,导致结果模糊。
【问题讨论】:
你在 webview 上加载了什么? @jcesar 我正在加载一个本地网站,该网站的大小和位置适合 iPhone/iPhone 视网膜。 不明白你是想模拟还是使用iPad Retina显示屏。 再说一次:我有一个 iPhone 应用程序,可以在 iPad1/iPad2 上运行。当您在 iPad 上运行 iPhone 应用程序时,它会在 480x320 窗口中运行。您可以将其最大化为 960x640 窗口 - 在这种情况下,它应该被视为具有 960x640 分辨率的 iPhone Retina 应用程序。但是,UIWebView 检查 iPad 没有视网膜显示(这是真的)并加载帧 480x320 的内容,然后将其拉伸到看起来很糟糕的 960x640。问题是,如何强制 UIWebView 认为它在 iPhone 视网膜上运行。 【参考方案1】:不,当您按下 2x 按钮时,您的应用会放大,而您无法在代码中检测到这一点。
这对 Apple 来说是一个很大的失误,当应用程序在 iPad 上以 2x 模式显示时,它本应在视网膜模式下运行,但是这意味着你需要在应用程序进入 2x 模式时重新启动它。
您的应用程序的 Retina 版本将用于新 iPad,但此处的 agin 缩放只会使像素翻倍。
【讨论】:
我同意Apple默认不支持它,但是如果您使用一些适用于纯OpenGl的框架,您可以自己处理。这就是我在应用程序的其他部分所做的,我认为有一种方法可以强制 UIWebView 也以视网膜模式显示。也许有人知道如何作弊。不管怎样,谢谢你的回答;)以上是关于仅 iPhone 应用程序中的 UIWebView 显示在 iPad 上的主要内容,如果未能解决你的问题,请参考以下文章
UIWebview 中的 HTTPS url 在 iphone / ipad 中不起作用