TOWebViewController 2.2.8

TOWebViewController 2.2.8

测试测试
语言语言 Obj-CObjective C
许可证 未知
发布上次发布2018年7月

Tim Oliver维护。



  • Tim Oliver

TOWebViewController

为 iOS 应用提供内联网页浏览功能

TOWebViewController

CI Status CocoaPods Version Carthage compatible GitHub license Platform Beerpay PayPal Twitch

TOWebViewController 是一个开源的 UIViewController 子类,旨在让应用快速向用户展示网页内容,而无需将它们转向 Safari。从零开始设计 TOWebViewController 以便于集成到现有项目中,利用 iOS 的最新功能,并可选择(显著地)与 iOS 的早期版本向后兼容。

特性

  • UIWebView 支持,向后兼容到 iOS 5。
  • 完整的导航按钮集合,包括后退、向前、刷新按钮以及可选的分享/操作按钮。
  • 检测是否模态推送或通过导航控制器推送,并相应地调整用户界面。
  • 页面加载进度条(使用 ninjinkun 的出色算法)。
  • 当用户旋转设备时,播放平滑、优雅的旋转动画。
  • 图标由 CoreGraphics 生成(即,不使用任何不必要的图像资源)。
  • 与 iOS 8 尺寸类兼容,包括 iPad Air 2、iPad mini 4 和 iPad Pro 的分屏。
  • 1Password自动密码输入扩展支持。
  • (待办)一个合适的委托系统,允许外部类与这个控制器交互。
  • (待办)基本的导航历史记录,在长按返回/前进按钮时显示。
  • (待办)一个合适的多余发生错误/未连接到互联网的对话框视图。

示例

TOWebViewController非常智能,能够判断自己是作为模态弹出显示,还是被推送到UINavigationController中,并相应地更改其按钮布局。

作为模态对话框显示

作为模态弹出显示时,仍需要创建一个父UINavigationController以使按钮正确显示。

TOWebViewController *webViewController = [[TOWebViewController alloc] initWithURL:[NSURL URLWithString:@"http://www.apple.com/"]];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:webViewController];
[self presentViewController:navigationController animated:YES completion:nil];

推送到UINavigationController

TOWebViewController *webViewController = [[TOWebViewController alloc] initWithURL:[NSURL URLWithString:@"http://www.apple.com/"]];
[self.navigationController pushViewController:webViewController animated:YES];

系统要求

iOS 5.0 或更高版本

安装

作为CocoaPods依赖

将以下内容添加到您的Podfile中

pod 'TOWebViewController'

作为Carthage依赖

将以下内容添加到您的Cartfile中

github "https://github.com/TimOliver/TOWebViewController"

手动安装

从GitHub下载此项目,将名为'TOWebViewController'的子文件夹移动到您的项目文件夹中,并将其拖动到您的Xcode项目中。

之后,您需要将以下系统框架链接到您的项目中

  • QuartzCore.framework
  • CoreGraphics.framework
  • MessageUI.framework
  • Twitter.framework

为何不采用WKWebView

虽然WKWebView看起来比UIWebView更漂亮,但它有几个严重的缺点。最重要的是,在WKWebView内部创建的会话和cookie数据无法被其余的Foundation框架访问。由于构建此项目的宏伟目标之一是允许用户登录web账户,并随后使用该会话下载文件,这是无法接受的。

在未来的任何时刻,TOWebViewController都不会采用WKWebView。如果您想要一个同样功能但使用WKWebView的替代视图控制器,请尝试使用DZNWebViewController

关于SFSafariViewController呢?

从iOS 9开始,苹果现在提供了一个类似功能的内置网页视图控制器,名为SFSafariViewController。如果您的应用程序只针对iOS 9,并且完全满足您的要求,那么强烈建议您采用SFSafariViewController,而不是使用TOWebViewController

但是,如果您仍然针对较低的iOS版本,或者需要更多比SFSafariViewController提供的更可定制的功能,那么TOWebViewController仍然可以作为一个可行的替代方案。

致谢

TOWebViewController最初是由Tim Oliver制作的,用作iComics的组件,iComics是一款iOS漫画阅读应用程序。

还要感谢TOWebViewController日益增长的贡献者

iPad Air 2和iPhone 6s Plus设备模型由Pixeden制作。

许可

TOWebViewController遵循MIT许可协议。更多信息,请参见LICENSE文件。analytics