웹 사이트에 로그인하여 로그인하고 잘 작동하는 NSURLRequest를 사용하여 페이지의 HTML 소스를 가져옵니다. html 소스가 콘솔에 출력해서 필요한 것임을 확인합니다. 문제는 자바 스크립트 코드가 끝난 후에 렌더링 된 HTML을 가져와야한다는 것입니다. 내 연구에서이 작업을 수행하는 유일한 방법은 UIWebView로로드하는 것입니다. 그러나 이렇게하면 webViewDidFinishLoad 대리자가 절대 실행되지 않습니다. webViewDidStartLoad도 마찬가지입니다. 유일한 목적은 렌더링 된 HTML을 얻는 것이기 때문에 UIWebView를 아무 데나 표시하고 싶지 않습니다. 여기 내 코드는 지금까지입니다 : 내가 추가 않았다 볼 수 있습니다UIWebViewDelegate DidFinishLoad 사용자 정의 클래스에서 실행되지 않음 (Swift)
theWebPage.delegate = self
:
import UIKit
class ShowParser : NSObject, UIWebViewDelegate
{
var webView = UIWebView()
init()
{
super.init()
webView.delegate = self
sendRequest()
}
funs sendRequest()
{
var requestUrl = NSURL(string: "<website>")
var baseUrl = NSURL(string: "<website>")
var nsurlRequest = NSMutableURLRequest(URL: requestUrl)
nsurlRequest.HTTPMethod = "POST"
nsurlRequest.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
var submitData = "submit=login&lastplace=&email=<username>&password=<password>"
var requestBodyData = submitData.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
nsurlRequest.HTTPBody = requestBodyData
var data = NSURLConnection.sendSynchronousRequest(nsurlRequest, returningResponse: nil, error: nil)
var dataResultsString = NSString(data: data, encoding: NSUTF8StringEncoding)
//println(dataResultsString)
webView.loadHTMLString(dataResultsString, baseURL: baseUrl)
}
func webViewDidStartLoad(webView: UIWebView!)
{
println("Started Loading")
}
func webViewDidFinishLoad(webView: UIWebView)
{
println("Finished Loading")
}
}