1. 程式人生 > >IOS 實時獲取UIWebView中的html內容

IOS 實時獲取UIWebView中的html內容

在開發時,可能需要提取網頁中的部分資料,比如標籤內的標題,或者是網頁的描述資訊,這裡利用UIWebView的Javascript可內聯HTML特性抓取網頁中的元素實現的。

open func stringByEvaluatingJavaScript(from script: String) -> String?

stringByEvaluatingJavaScript方法是將Javascript命令嵌入網頁中,抓取資料

swift3.0:

獲取html頁面title的值:

let title : String = self.webView.stringByEvaluatingJavaScript(from: “document.title”)

self.webView.stringByEvaluatingJavaScript(from: “document.getElementsByTagName(‘html’)[0].innerHTML”)//打印出值為”<head></head><body></body>"

獲取html頁面上element的值:

 let username : String = self.webView.stringByEvaluatingJavaScript(from: “document.getElementsByName(‘username’)[0].value")

給html頁面上element賦值:

let loadUserNameJS = String.init(format: "document.getElementsByName('username')[0].value = '%@'", email ?? “")

 //autofill the form

 self.webView.stringByEvaluatingJavaScript(from: loadUserNameJS)

使用UIWebViewDelegate協議,並在你的delegate中實現如下的方法:

 func webViewDidFinishLoad(_ webView: UIWebView) {

        //verify view is on the login page of the site (simplified)

        let requestURL : URL? = self.webView.request?.url

 }

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {

   return true

}