WebView控件是做网络应用开发中使用最多的控件,直接在WebView内部指定一个网页地址就可以访问网页了,同时也可以实现UIWebViewDelegate协议实现相应的方法去控制内容的加载和处理。著名的PhoneGap开发的应用,其外壳重要的组件也是WebView控件。
在viewDidLoad方法内添加以下代码就可以完成简单的网页
var webView = UIWebView(frame: CGRectMake(0, 0, 600, 600))
var url = NSURL(string: "http://www.imoneyfans.com")
webView.loadRequest(NSURLRequest(URL: url!))
self.view.addSubview(webView)
就像上面加载网页时用到的loadRequest方法用于加载指定url对象所设定的网页内容。方法loadHTMLString则用于加载指定的HTML代码片断。
var html = "<section><img src=\"http://img1.gtimg.com/12/1224/122455/12245555_980x1200_0.jpg\"</section>"
webView.loadHTMLString(html, baseURL: nil)
loadData也是用于加载指定内容,如将本地的一个html文件转成NSDATA对象后显示在WebView上
var file = NSBundle.mainBundle().pathForResource("test", ofType: "html")
var url = NSURL.fileURLWithPath(file!)
var data = NSData(contentsOfURL: url!)
webView.loadData(data, MIMEType: "text/html", textEncodingName: "utf-8", baseURL: nil)
对于检测网页的内容是否是可交互的类型,如果点击网页上一个Address可以调出Map,可以指定要探测的数据类型可选的值有链接(Link)、地址(Address)、电话号码(PhoneNumber)等,也可以指定为All探测所有的类型,在缺省状态下电话号码是可以点击的,以下是探测电话号码
webView.dataDetectorTypes = UIDataDetectorTypes.PhoneNumber
还有很多方法,如
webview.reload()
webview.stopLoading()
webview.goBack()
webview.goForward()
如果要实现更高级的功能就要实现UIWebViewDeleage这个协议。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端