2016-05-05 73 views
0

我想用swift構建一個iPhone/iPad的iOS應用程序,它檢查特定的URL,提取並解析HTML頁面,但不暴露UIWebView的Web界面視圖。如果HTML視圖僅顯示用於第一次驗證用戶,然後每次都以編程方式直接訪問該頁面,那麼我會非常高興。一個示例應用程序,我認爲這是Outlook的Hotmail &的MailBuzzr。UIWebView如何用於自動抓取需要認證的頁面?

我需要某種Web刮板,但在某些情況下,例如http://login.live.com這是非常繁瑣的,即非常複雜的輸入形式,兩步驗證等。我只是測試從UIWebView訪問我的真實賬戶,即使需要兩步驗證,它也能很好地工作。但是,我想以編程方式到達那裏,而不會將視圖暴露給用戶或以任何可能的方式掩蓋它。

有沒有辦法使用UIWebView來做到這一點?備擇方案?

我的代碼非常簡單:

@IBOutlet var Webview: UIWebView! 
let url = NSURL(string: "https://account.live.com/") 
let request = NSURLRequest(URL: url!) 
Webview.loadRequest(request) 

PS:我嘗試使用Mozilla的Web開發插件檢查現場登錄頁面,無法進行參數(NAP,匿名,t)的意識,他們如何計算。我認爲這可以做到,但也許有一個更簡單的方法使用UIWebView。

回答

1

我認爲你必須做的一件事是注入一些JavaScript來填充字段並觸發登錄過程。

您可以使用像這樣的(僞代碼)的方法:

NSString *html = [webView stringByEvaluatingJavaScriptFromString: @"document.body.innerHTML"]; 

NSString *javaScript = @"var field = document.getElementsByTagName('#password')[0]; 
// Set it. 
// Trigger the form submission."; 
[webView stringByEvaluatingJavaScriptFromString:javaScript]; 

然後你就可以獲取內容(僞代碼)刮的頁面