Fly to the sky & Return

[swift html parser] webview를 이용한 딴지일보 자유게시판 본문 출력....... 2 본문

프로그래밍/Swift(IOS & Mac)

[swift html parser] webview를 이용한 딴지일보 자유게시판 본문 출력....... 2

낼은어떻게 2016. 4. 14. 18:00
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

리스트를 클릭하면 그 본문을 웹뷰에서 보여주는 화면입니다...   사진 사이즈까지 깔끔하게 정리가 된것 같기는 한데

먼가 요상한 느낌이 있기도 하지만. 머상용버전을 만드는 것이 아니니 요쯤에서....   




코드는 다음고 같습니다.



참고로   이 소스는  리스트를 클릭했을때 관련 링크를 불러들여서 보여주는 소스입니다.. 요것만 가지고는 작동을 안합닌당...


테스트를 해보고 싶다면  apiURI   부분을 수정하여 테스트해보고 싶은 사이트를 해보시면 될듯합니다만...  요소스는 딴지일보에 본문에 특화된 소스이다보니 다른곳에서는 그닥 필요가 없을 수도 있습니다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import UIKit
import Kanna
 
 
class TitleViewController : UIViewController {
    
    var par : ParserVO? = nil
    
    var list_content = Array<ParserVO>()
    
    
   
    
    @IBOutlet var wv: UIWebView!
    
    override func viewDidLoad() {
        
        var list = Array<XMLElement>()
        
        var list_data = Array<String>()
        
       
        let apiURI = NSURL(string: (self.par?.title_link)!)
         
        let apidata : NSData = NSData(contentsOfURL: apiURI!)!
        
        if let doc = Kanna.HTML(html: apidata, encoding: NSUTF8StringEncoding) {
            var i = 1
            for data in  doc.xpath("//article/div") {
               
                list.append(data)
 
            }
            
            for data in list {
                
                if let a  = data.innerHTML {
                    list_data.append(a)
                    
                }
                
            }
 
            
            
            let line = list_data.joinWithSeparator(" ")
            
            
            var result = line.rangeOfString("<!--After",
                                            options: NSStringCompareOptions.LiteralSearch,
                                            range: line.startIndex..<line.endIndex,
                                            locale: nil)
            
            // See if string was found.
            if let range = result {
                
                // Display range.
                //  print(range)
                
                // Start of range of found string.
                var start = range.startIndex
                
                // Display string starting at first index.
                // print(line[start..<line.endIndex])
                
                // Display string before first index.
                var beforeStart = start.predecessor()
                
                list_data2.append(line[line.startIndex..<beforeStart])
            }
            
            var line2 = list_data2.joinWithSeparator(" ")
            
           
            self.wv.loadHTMLString(line2, baseURL: nil)
            
            
            
        }
 
    }
  
}
 
 
 
cs