SwiftUI WebView集成与使用
SwiftUI 的网页加载组件其实挺绕的,尤其一开始你会发现,它压根就没内建的 WebView。嗯?那咋整?好在有不少第三方库能搞定,比如SDWebImageSwiftUI
,它虽然主打图片,但也顺手了个还挺好用的WebView
组件。
WebView 的基本用法简单,你只要传个URL
进去,它就能帮你把网页嵌进 SwiftUI 界面里,响应也快,效果还不错。你用CocoaPods
或者SPM
装一下库,马上就能跑。
像这样:
WebView(url: URL(string: "https://www.example.com")!)
要是你有本地的HTML
字符串,也能直接塞进去:
WebView(html: "Hello, SwiftUI WebView!
")
想和网页交互?可以的。只要你敢写JavaScript
,就能通过evaluateJavaScript
注入脚本,像抓网页标题、监听按钮点击都不在话下。
比如下面这个,点进去还能拿到页面标题:
webView.evaluateJavaScript("document.title") { (result, error) in
if let title = result as? String {
self.result = title
}
}
了,安全问题你得注意,比如别随便加载 HTTP 的链接,最好搞清楚Info.plist
里的 ATS 设置。不然上线 App Store 的时候,被卡住。
如果你还想深挖,比如搞个 JSBridge 或者加点交互动画,可以看看Webview JSBridge相关的资料。嗯,SwiftUI 的 WebView 虽然不是原生的,但折腾起来其实还蛮有意思。
如果你项目中有展示网页内容的需求,又不想跳出 SwiftUI 的语法糖世界,那这个方案还是蛮香的。记得按需加载 WebView,资源消耗也能控制得住。
55.78KB
文件大小:
评论区