iOS-HTML交互学习笔记(三)-拼接标题和图片放入webView中

在添加完body信息后,现在我们把标题和图片放入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){
            // 转为json数据,try? 解决throws异常, as!强制转换
            let jsonData = try? NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! NSDictionary;
            self.dealNewsDetail(jsonData!);
        }
    }
    // 4.开启请求
    dataTask.resume();
   
}

 // 处理拿到的数据并显示
func dealNewsDetail(jsonData: NSDictionary) -> Void {
    // 1.取出所有内容
    let allData = jsonData["BSB33M1000234KO7"];
    
    // 2.取出body中的内容
    var bodyHtml = allData!["body"] as! String;
    
    // 3.取出标题
    let title = allData!["title"] as! String;
    
    // 4.取出发布时间
    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)
    }
    
    // 创建标题HTML标签
    let titleHtml = "<div>\(title)</div>";
    
    // 创建子标题html标签
    let subTitleHtml = "<div><span>\(ptime)</span><span>\(source)</span></div>"
    
    
    // 拼接HTML
    let html = "<html><head></head><body>\(titleHtml)\(subTitleHtml)\(bodyHtml)</body></html>"
    
    // 把对应的内容显示daowebView中
    webview.loadHTMLString(html, baseURL: nil);
    
}

运行模拟器,观察效果,图片和标题都已经加入,但是图片适配有些问题,请看下一章:iOS-HTML交互学习笔记(四)-添加全局的CSS样式

运行效果.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,868评论 1 92
  • 这是一个关于markdown编辑器的测试 这是一段题外话,markdown语法怎样空行? 下面是严肃的测试时间 A...
    豆芽琪琪琪阅读 174评论 0 0
  • 一字千金,我们大多以为只是个传说,但是我有惨痛的教训:2015年6月1号,陶瓷原料及装备展在广州举行,我公司有参展...
    岩如yu阅读 1,719评论 0 50
  • 雨又下得密了我不知道什么时候离开这个惦念的清贫的小镇 这半年,我冒着南方的雨撑伞结了鲤鱼鳞片一样温柔的茧
    惊蛰夕阅读 358评论 10 13