TOWebContentViewController 1.0.2

TOWebContentViewController 1.0.2

Tim Oliver 维护。



  • By
  • Tim Oliver

TOWebContentViewController

CI Version GitHub license Platform PayPal

TOWebContentViewController 是一个类,旨在允许快速呈现 HTML,无论是从本地文件还是在线。

它并不旨在成为网页浏览器,而是更倾向于在应用内部显示特定的信息,在那里投入资源实现等效的原生 UI 不太值得。例如,显示隐私政策或开源认可列表。

视图控制器还提供了一些额外的优势,例如能够动态预设背景颜色,并使用 mustache 模板引擎动态注入信息。

特性

  • 使用 WKWebView 来显示 HTML 内容和图片,无论是从磁盘还是从网站。
  • 有意禁止'后退'或'前进'导航,而是将内容视为应用的组件。
  • 点击链接将被捕获,并且可以动态处理,或由视图控制器自动处理。
  • 对于本地 HTML 内容,允许从应用程序注入动态信息(例如,应用版本、当前年份等)
  • 如果 HTML 中存在,可以提取 HTML 内容的背景颜色,并在加载时将其设置为视图控制器视图的背景。

系统要求

iOS 9.0 和更高版本。

安装

作为 CocoaPods 依赖项

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

pod 'TOWebContentViewController

手动安装

TOWebContentViewController 文件夹复制到您的 Xcode 项目中。

TOWebContentViewController 是一个 Objective-C 项目,但它已被编写为能够在 Swift 中正常工作。如果您在 Swift 项目中使用它,请勿忘记将其包含在 Objective-C 桥接头中。

示例

对于磁盘内容,建议您将所有 HTML/CSS 放在一个文件夹中,并将其作为 'Group Reference' 导入 Xcode(即在 Xcode 导航器中使用蓝色图标)(截图)

Hello World 示例

// Get resources folder URL
let resourcesURL = Bundle.main.resourceURL!
let baseURL = resourcesURL.appendingPathComponent("HTML")
let fileURL = baseURL.appendingPathComponent("about.html")

// Create the web content view controller
let webContentController = WebContentViewController(fileURL: fileURL, baseURL: baseURL)

// Present the view controller however way you need.
navigationController.push(webContentViewController, animated: true)

使用模板系统

如果加载本地 HTML 文件,已经实现了基于 mustache 的基本模板系统,以便将来自您的应用程序的动态内容注入到 HTML 中。这对于显示当前的 app 版本或构建号非常有用,甚至可用于更复杂的事情,如交换 CSS 文件。

要使用模板系统,只需在您的 HTML 中插入模板标签,然后指定需要替换的内容。

let myHTMLString = "<html><body>{{Greeting}}</body></html>"

let vc = WebContentViewController(htmlString: myHTMLString, baseURL: nil)
vc.templateTags = ["Greeting": "Hello World!"]

显示时,{{Greeting}} 将被替换为 "Hello World!"。

您可以在 templateTags 中设置自己的自定义值,但视图控制器还创建了一些默认值

  • {{AppName}} - 主束中应用程序的短名称(例如 'iComics')
  • {{AppVersion}} - 此版本应用程序的版本号(例如 '1.4')
  • {{AppBuildNumber}} - 此版本应用程序的构建号(例如 '1432')
  • {{AppCurrentYear}} - 设备上的当前年份(例如 '2018')

设置背景颜色

在网页视图开始加载之前,您可以动态设置视图控制器的背景颜色,使其与网页内容相同,从而使外观看起来更符合整个应用程序的风格。

要自动设置颜色,请将名为 data-bgcolor="" 的标签放置在您的HTML文件中的任何位置。

<html>
	<body data-bgcolor="#eeeeee"></body>
</html>

请注意,您必须使用6位的十六进制代码才能使其工作。

来源

TOWebContentViewController最初是由Tim Oliver为其创建,作为iComics(iOS漫画阅读应用程序组件)的一部分。

截图中所用的iOS设备模型由Pixeden创建。

许可

TOWebContentViewController遵循MIT许可证,请参阅LICENSE文件。analytics