写入 Swift 中的本地 html 文件
Write to local html file in Swift
我从 json 收到了一些 html 代码。现在我必须将此 html 代码写入我项目中的 html 文档,然后在 webView 中显示它。如何将 HTML 代码写入项目中的 html 文件。
这是我的内容变量,我有 HTML 代码。
func getArticles() {
//let id = "1018"
let url = "http://www.salemkz.kz/inc/API/getArticles.php?idArticle=170"
print(url)
URLSession.shared.dataTask(with: URL(string: url)!) { (data, response, error) in
if (error != nil) {
print(error!.localizedDescription)
}
else {
let jsons = try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String: AnyObject]
if let results = jsons["result"] as? [[String: AnyObject]] {
//print("got Result", results)
for result in results {
let content = result["content"] as? String
print(content!)
}
}
}
}.resume()
}
我必须将此代码写入此 html 文件(名为 "articles-1.html"):
怎么做???
好吧,您可以手动生成此文档。这不是一个优雅的解决方案,但会起作用。试试这个:
@IBOutlet weak var webView: UIWebView!
var generatedHtml : String?
var receivedContent: String? = ""
func getArticles() {
//let id = "1018"
let url = "http://www.salemkz.kz/inc/API/getArticles.php?idArticle=170"
print(url)
URLSession.shared.dataTask(with: URL(string: url)!) { [weak self]
(data, response, error) in
if (error != nil) {
print(error!.localizedDescription)
}
else {
let jsons = try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String: AnyObject]
if let results = jsons["result"] as? [[String: AnyObject]] {
//print("got Result", results)
for result in results {
let content = result["content"] as? String
if (content != nil) {
self?.receivedContent?.append(content!)
}
print(content!)
}
self?.generatedHtml = self?.generateString()
if ((self?.generatedHtml) != nil) {
self?.webView.loadHTMLString((self?.generatedHtml!)!, baseURL: nil)
}
}
}
}.resume()
}
func generateString() -> String? {
var resultString: String?
let firstString = "<DOCTYPE HTML> \r <html lang=\"en\" \r <head> \r <meta charset = \"utf-8\"> \r </head> \r <body>"
let endString = "</body> \r </html>";
resultString = firstString + self.receivedContent! + endString;
return resultString
}
这里的webView是一个视图,你要在其中显示这个html。如果你想把html保存到文件中,你也可以这样做,只是稍微修改一下代码。 (使用String.writeToFile方法)
我从 json 收到了一些 html 代码。现在我必须将此 html 代码写入我项目中的 html 文档,然后在 webView 中显示它。如何将 HTML 代码写入项目中的 html 文件。
这是我的内容变量,我有 HTML 代码。
func getArticles() {
//let id = "1018"
let url = "http://www.salemkz.kz/inc/API/getArticles.php?idArticle=170"
print(url)
URLSession.shared.dataTask(with: URL(string: url)!) { (data, response, error) in
if (error != nil) {
print(error!.localizedDescription)
}
else {
let jsons = try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String: AnyObject]
if let results = jsons["result"] as? [[String: AnyObject]] {
//print("got Result", results)
for result in results {
let content = result["content"] as? String
print(content!)
}
}
}
}.resume()
}
我必须将此代码写入此 html 文件(名为 "articles-1.html"):
怎么做???
好吧,您可以手动生成此文档。这不是一个优雅的解决方案,但会起作用。试试这个:
@IBOutlet weak var webView: UIWebView!
var generatedHtml : String?
var receivedContent: String? = ""
func getArticles() {
//let id = "1018"
let url = "http://www.salemkz.kz/inc/API/getArticles.php?idArticle=170"
print(url)
URLSession.shared.dataTask(with: URL(string: url)!) { [weak self]
(data, response, error) in
if (error != nil) {
print(error!.localizedDescription)
}
else {
let jsons = try! JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String: AnyObject]
if let results = jsons["result"] as? [[String: AnyObject]] {
//print("got Result", results)
for result in results {
let content = result["content"] as? String
if (content != nil) {
self?.receivedContent?.append(content!)
}
print(content!)
}
self?.generatedHtml = self?.generateString()
if ((self?.generatedHtml) != nil) {
self?.webView.loadHTMLString((self?.generatedHtml!)!, baseURL: nil)
}
}
}
}.resume()
}
func generateString() -> String? {
var resultString: String?
let firstString = "<DOCTYPE HTML> \r <html lang=\"en\" \r <head> \r <meta charset = \"utf-8\"> \r </head> \r <body>"
let endString = "</body> \r </html>";
resultString = firstString + self.receivedContent! + endString;
return resultString
}
这里的webView是一个视图,你要在其中显示这个html。如果你想把html保存到文件中,你也可以这样做,只是稍微修改一下代码。 (使用String.writeToFile方法)