欢迎使用 WPArticleLoader!
使用 WPArticleLoader,您可以轻松地从您的 WordPress 网站加载文章。
使用方法非常简单!您只需设置您的网站地址并为 Publisher 构建一个接收器。
let handler = WPArticleLoader(websiteAdress: URL(staticString: "https://ml-projects.de"))
handler.fetchArticles()
.receive(on: DispatchQueue.main)
.sink { response in
switch response {
case let .failure(error):
print(error)
case .finished:
print("Articles loaded")
}
} receiveValue: { response in
self.articles = response
}
.store(in: &cancellables)
`Article` 类包含最重要的数据并对其进行解析。如果您想自行解析数据,可以使用 ArticleLoadingService 并接收 `ContentfulArticle`。`ContentfulArticle` 中包含来自 REST API 的 JSON 完整数据。您可以像这样使用 ArticleLoadingService
let articleURL = URL(staticString: "https://ml-projects.de/wp-json/wp/v2/posts")
var components = URLComponents(string: articleURL.absoluteString)!
// this is to get the embeded Data too (The Embeded Data is used by the normal Loader too)
components.queryItems = [
URLQueryItem(name: "_embed", value: nil)
]
// Create a URLRequest
let request = URLRequest(url: components.url!)
// Create the handler
let handler = ArticleLoadingService()
handler.fetchArticles(urlRequest: request)
.receive(on: DispatchQueue.main)
.sink { response in
switch response {
case let .failure(error):
print(error)
case .finished:
print("Contentful Articles loaded")
}
} receiveValue: { response in
self.contentfulArticles = response
}
.store(in: &cancellables)
`ImageLoader` 是另一个简化功能,它可以为您加载图像,因此您无需自己加载,您可以将其与 `AsyncImage` 结合使用。
// Example for the featuredImage
AsyncImage(imageLoader: featuredImageLoader) {
// your Placeholder
}
但是您也可以自行接收图像或使用 URL。
// Image
if let featuredImage = featuredImageLoader.image {
Image(uiImage: featuredImage)
}
// URL
featuredImageLoader.url
`featuredImageLoader` 是可选的,因为并非每篇文章都有特色图像。
如果您想将 `ImageLoader` 用于您自己的 URL,例如内容中的 URL,您可以轻松地初始化它并将其与 `AsyncImage` 一起使用。
// Example for the featuredImage
AsyncImage(imageLoader: ImageLoader(url: URL(staticString: "youradress.com"))) {
// your Placeholder
}
开发者:Torben Köhler