TelegraphKit 允许您以一种在 iOS 设备上看起来和感觉上都很原生的方式显示来自 telegra.ph 的网页内容。
“等等,telegra.ph 到底是什么?”
Telegraph 是一种“发布工具,允许您创建格式丰富的帖子,包含照片和各种嵌入内容”。它的主要优点是您可以在几秒钟内创建帖子,无需帐户和配置。然后,使用 TelegraphKit,您可以轻松地在您的应用中显示这些帖子。
维护者: @dreymonde
非常感谢 @danielpunkass 的文章 "支持暗黑模式:应用内网页内容",它对我们帮助巨大!
在 telegra.ph 上创建一篇帖子。无需创建帐户或配置任何内容。点击 "PUBLISH" 并复制链接。
将 TelegraphKit 添加到您的项目中(参见下面的 "安装" 部分)
在您的项目中的某个地方
import TelegraphKit
let url = URL(string: "<your-telegraph-url>")!
let telegraphVC = TelegraphViewController(url: url)
let nvc = UINavigationController(rootViewController: telegraphVC)
self.present(nvc, animated: true)
TelegraphKit 构建在 WKWebView 之上,专门为 telegra.ph 文章添加了一些额外的功能
| 默认 telegra.ph 外观 | TelegraphKit 版本 |
|---|---|
![]() |
![]() |
let telegraphVC = TelegraphViewController(url: URL(string: "https://telegra.ph/This-is-TelegraphKit-02-03")!)
// or
let telegraphVC = TelegraphViewController(postID: "This-is-TelegraphKit-02-03")
您可以使用 TelegraphViewController.Appearance 结构体来配置 TelegraphViewController 的外观
let telegraphVC = TelegraphViewController(postID: "<your-post-id>", appearance: .appleSystem)
TelegraphKit 为您提供了两个预设
TelegraphViewController.Appearance
--->.appleSystem // (default)
--->.telegraph
--->.defaultAppearance // (equals .appleSystem by default)
您可以通过直接创建它来微调外观
TelegraphViewController.Appearance(
fontStyle: TelegraphViewController.Appearance.FontStyle, // .appleSystem or .telegraph
hideAuthor: Bool,
darkModeSupport: Bool, // true by default
disableImageInteraction: Bool, // true by default
disableSelection: Bool // false by default
)
要全局更改默认外观,您可以修改 TelegraphViewController.Appearance.defaultAppearance
// Somewhere in AppDelegate.swift or similar:
TelegraphViewController.Appearance.defaultAppearance = .telegraph
从 0.1.0 版本开始,TelegraphKit 提供了一个用于 SwiftUI 的 TelegraphView
TelegraphView(
postID: "<YOUR-POST-ID>",
appearance: .appleSystem // optional
)
要自动在屏幕右上角添加 "Done" 按钮,请使用 .dismissable()
TelegraphView(
postID: "<YOUR-POST-ID>",
appearance: .appleSystem // optional
)
.dismissable() // will show "Done"
.dismissable(doneButtonTitle: "Cancel") // optional: customize done button title
完整使用示例
struct ExampleView: View {
@State var showWebPage: Bool
var body: some View {
ZStack {
Button("Open Telegraph") {
showWebPage = true
}
}
.sheet(isPresented: $showWebPage) {
TelegraphView(
postID: "<YOUR-POST-ID>",
appearance: .appleSystem // optional
)
.dismissable()
}
}
}
http://github.com/dreymonde/TelegraphKit.git。