IOS 实时获取UIWebView中的html内容

本文介绍如何在Swift 3.0中利用UIWebView及其JavaScript交互能力来抓取HTML页面的数据,包括获取页面标题、元素值及设置表单值等。同时展示了如何通过UIWebViewDelegate监测页面加载完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发时,可能需要提取网页中的部分数据,比如标签内的标题,或者是网页的描述信息,这里利用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

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值