带有 UIWebView 或自定义视图控制器的 iPad 应用程序

Posted

技术标签:

【中文标题】带有 UIWebView 或自定义视图控制器的 iPad 应用程序【英文标题】:IPad App With UIWebView Or Custom View Controller 【发布时间】:2013-04-07 17:50:20 【问题描述】:

这不是帮助纠正代码的呼声。我有一个简单的应用程序,它解析 rss 提要并在 UITableview 中显示数据(图像、标题、发布者等)。用户点击 tableview 中的任何条目,它会转到 UIWebView。

对于 iPhone,UIWebView 显示移动网站,我对移动网站做了一些小的自定义,所以它在我的应用程序内的 UIWebView 中看起来好多了。

但对于 iPad,它不显示移动网站,而是显示正常网站,这使得它看起来很糟糕,它有自己的导航等控件。允许用户浏览它的网站功能,而不是我通过应用程序提供的功能。

我的问题是我可以将这个应用程序提交到 App Store 吗?由于这种行为,我的应用程序是否有可能被拒绝?

还请建议是否有任何替代解决方案使用 UIWebView 而无需为此目的制作自定义视图控制器。

提前致谢。

更新:

强制为 iPad 用户显示移动网站是不正确的做法。只需阅读一份来自 Apple 的文件,上面写着““如果您的网站版本针对小屏幕移动设备进行了优化,请不要将此移动版本提供给 iPad 用户。”http://developer.apple.com/library/ios/#technotes/tn2010/tn2262/

【问题讨论】:

【参考方案1】:

Apple 很可能会因为某个应用看起来不太好而拒绝它,这确实是他们的选择,这取决于谁对应用进行了评论。

我可能会尝试在 iOS 之外找到解决方案,您始终可以强制网站加载 iPad 的移动版本(不是某些人喜欢这样)。

如果您使用 Apache,您始终可以在 .htaccess 中使用类似于以下内容的内容:

RewriteEngine On

#if request_uri is _not_ followed by mobile
RewriteCond %REQUEST_URI !^/mobile/.*$

#if the user agent is ipad
RewriteCond %HTTP_USER_AGENT ^.*iPad.*$

#Redirect to /mobile/index.php
RewriteRule ^(.*)$ /mobile/ [L,R=301]

【讨论】:

我尝试了您回答的解决方案,但它在 iPad 的 uiwebview 中呈现时会破坏整个移动主题。 可能有一些 css/js 需要重新定向。您可以这样做,将行放在第一个 RewriteCond 规则上方:RewriteCond %REQUEST_URI !\.(jpg|png|css|js)$ 另外,不确定您是否可以这样做,但我会更改帖子上的标志以包括 apache 和 htaccess,您可能会得到一些更有资格的人来帮助提供更完整的解决方案。 不,它没有用。此外,我认为强迫移动网站在 iPad 上显示不是正确的做法。只需阅读 Apple 的一份文件,上面写着“如果您的网站版本针对小屏幕移动设备进行了优化,请不要将此移动版本提供给 iPad 用户。” developer.apple.com/library/ios/#technotes/tn2010/tn2262【参考方案2】:

如果您的移动版本不适合 iPad,只需制作新版本或修复原始网站中的问题,将网站发送到嵌入 web 视图的 App Store 只会在您需要真正的快速更新。

【讨论】:

tableview 将链接推送到具有刷新、停止、前进和后退以及分享到社交网络功能的 webview。我要的是内容如何在 iPad 的 webview 中显示【参考方案3】:

您可以尝试使用UIWebViewDelegate 的–webView:shouldStartLoadWithRequest:navigationType: 方法,并修改用户代理(和/或任何其他标题)以显示移动网站,而不是桌面版本。

【讨论】:

我没有使用过这个委托方法,但是如果它只处理链接、刷新、后退和前进,我已经在 Webview 中实现了这些功能。我感兴趣的是 WebView 内容是如何显示的。 另外,我已经用 Apple 文件更新了这个问题,该文件建议我们不应该为 iPad 设备强制移动网站。 委托方法允许您拦截 UIWebView 发出的任何请求并根据需要进行修改。而且,嗯,是的,强迫人们访问移动网站是不好的。但是,如果您愿意,可以

以上是关于带有 UIWebView 或自定义视图控制器的 iPad 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

UIwebview 图片到新的视图控制器

从 UITableView 加载 UIWebView 仅第一次有效

iOS - UITableView 将 URL 推送到不同视图控制器中的 UIWebView

iPad + UIWebView + presentModalViewController

UIWebView 中的嵌入式 youtube 播放器正在破坏视图层次结构

如何通过 UIActivityViewController 打印 UIWebView?