html - 在 Swift 中写入本地 html 文件

标签 html ios swift bundle

我有一些从 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”): enter image description here

如何做到这一点???

最佳答案

好吧,您可以手动生成此文档。这不是一个优雅的解决方案,但会起作用。试试这个:

@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是一个 View ,你要在其中显示这个html。如果你想将html保存到文件中,你也可以这样做,只是稍微修改一下代码。 (使用String.writeToFile方法)

关于html - 在 Swift 中写入本地 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45026365/

相关文章:

PHP 表列

swift - 密码自动填充无法快速工作

ios - Xcode 中的快速变量检查

php - 如果 div 值 = session 用户名,则更改 div 颜色的 if 语句

javascript - 如何覆盖 CSS 配色方案设置

objective-c - Facebook 单点登录后应用程序崩溃

java - 用于在 iOS/android 上为塔防等 2D 游戏制作动画的方法

swift - 如何在 Swift 中删除 Sprite Kit 中的所有节点?

php - 位置 : fixed to position:static when horizontal scroll shows up?

iphone - 如何在应用程序退出时清除 SQLite 数据库?