在添加完body信息后,現(xiàn)在我們把標題和圖片放入webView,
override func viewDidLoad() {
super.viewDidLoad()
// http://c.m.163.com/nc/article/BSB33M1000234KO7/full.html
// 1.設置url
let url = NSURL(string: "http://c.m.163.com/nc/article/BSB33M1000234KO7/full.html");
// 2.設置請求
let request = NSURLRequest(URL: url!);
// 3.開啟異步請求操作
let dataTask = NSURLSession.sharedSession().dataTaskWithRequest(request) { (data, response, error) in
if (error == nil){
// 轉(zhuǎn)為json數(shù)據(jù),try? 解決throws異常, as!強制轉(zhuǎn)換
let jsonData = try? NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! NSDictionary;
self.dealNewsDetail(jsonData!);
}
}
// 4.開啟請求
dataTask.resume();
}
// 處理拿到的數(shù)據(jù)并顯示
func dealNewsDetail(jsonData: NSDictionary) -> Void {
// 1.取出所有內(nèi)容
let allData = jsonData["BSB33M1000234KO7"];
// 2.取出body中的內(nèi)容
var bodyHtml = allData!["body"] as! String;
// 3.取出標題
let title = allData!["title"] as! String;
// 4.取出發(fā)布時間
let ptime = allData!["ptime"] as! String;
// 5.取出來源
let source = allData!["source"] as! String;
// 6.取出所有圖片對象
let img = allData!["img"] as! [[String: AnyObject]];
// 7.遍歷
for i in 0..<img.count {
// 7.1取出單獨的圖片對象
let imgItem = img[i];
// 7.2取出站位標簽
let ref = imgItem["ref"] as! String;
// 7.3取出圖片標題
let imgTitle = imgItem["alt"] as! String;
// 7.4取出src
let src = imgItem["src"] as! String;
let imgHtml = "<div><img src=\"\(src)\"><div>\(imgTitle)</div></div>"
// 7.5替換body中的圖片占位符
bodyHtml = bodyHtml.stringByReplacingOccurrencesOfString(ref, withString: imgHtml)
}
// 創(chuàng)建標題HTML標簽
let titleHtml = "<div>\(title)</div>";
// 創(chuàng)建子標題html標簽
let subTitleHtml = "<div><span>\(ptime)</span><span>\(source)</span></div>"
// 拼接HTML
let html = "<html><head></head><body>\(titleHtml)\(subTitleHtml)\(bodyHtml)</body></html>"
// 把對應的內(nèi)容顯示daowebView中
webview.loadHTMLString(html, baseURL: nil);
}
運行模擬器,觀察效果,圖片和標題都已經(jīng)加入,但是圖片適配有些問題,請看下一章:iOS-HTML交互學習筆記(四)-添加全局的CSS樣式
運行效果.png