菜鸟入门,各位大佬轻喷,如有谬误之处欢迎讨论建议,也欢迎各位道友与我同行
“不积跬步,无以至千里;不积小流,无以成江海”
时间有点久了,快两周了,不是断更,是??了??,最近才勉强恢复过来。
继续本文我们来讨论WebView的基本使用。
WebView在很多场景都是避免不了的技术,毕竟有的东西在web上实现还是相对比较快速容易的。
更何况我原本的技术栈几乎都集中在web上,要不是需要前期入门积累,我都想直接第一篇就搞WebView了??。
本文将实现WebView的基本加载,示例如下:
在这里插入图片描述
思考SwiftUI中是没有webview的,单独去引个包肯定也不划算
所以我们需要从WebKit中引入WKWebView
让它在SwiftUI中可用作View,并且可以拿到webview的操作句柄
毕竟webview展示出来之后肯定是会有交互的。
实现新增webview.swift文件,内容如下:
importSwiftUIimportWebKit//这里我理解是把WebKit里面的WkWebView转成了SwiftUI可以使用的View类型structWebView:UIViewRepresentable{letwebview:WKWebView;//当然也可以直接在这个方法里面初始化WKWebView,但是这样的话就拿不到操作句柄了//不方便后续操作funcmakeUIView(context:Context)-WKWebView{returnwebview;}//这两个方法都是UIViewRepresentable里面规定的funcupdateUIView(_uiView:WKWebView,context:Context){}}//制定一个数据模型,这里面有webview的操作句柄//后续我们可以把与webview的交互写到这个类里面classwebviewModel:ObservableObject{letwebview:WKWebView;init(){//实例化WkWebViewself.webview=WKWebView(frame:.zero)//加载本地HTML//这个例子加载的是本地Resource文件夹下的index.html//letHTMLSTRING=try!String(contentsOfFile:Bundle.main.path(forResource:"index",ofType:"html")!,encoding:.utf8)//self.webview.loadHTMLString(HTMLSTRING,baseURL:Bundle.main.resourceURL);//加载远程HTMLleturl=URL(string:"