用于在 SwiftUI 应用程序中显示 Web 视图的 UIKit 可表示桥视图

SwiftUIWebView – SwiftUI 的 UIKit WKWebView 包装器

SwiftUI 的 UIKit 包装器,能够在使用 WebKit 框架留在您的应用程序中的同时向用户显示 WebView。

它使用 WKWebView 来显示它。

要求

iOS 14、斯威夫特 5.0 Xcode 13.0+

安装

斯威夫特包管理器

要将 SwiftUIWebView 集成到您的 Xcode 项目中,请在 Package Dependancies 中指定它 > 单击“+”按钮 > 复制并粘贴以下 URL:

https://github.com/devdchaudhary/SwiftUIWebView

将分支设置为“master”

检查 SwiftUIWebview

单击添加到项目

Screen.Recording.2023-05-23.at.4.59.16.PM.mov

用法

第 1 步:导入 SwiftUIWebView

第 2 步:调用 WebView 构造函数

import SwiftUI
import SwiftUIWebView

struct SwiftUIView: View {

    @State private var showSheet = false
    var url = "https://www.devdchaudhary.com"
        
    var body: some View {
        
        VStack {

            Button {
               showSheet.toggle()
            } label: {
                Text("Show Sheet")
            }
            
        }
        .fullScreenCover(isPresented: $showSheet) {
            WebView(url: url, showProgressBar: true)
        }
    }
}

此外,您可以传递一个布尔值来显示进度条。

模拟器.屏幕.录音.-.iPhone.14.Pro.-.2023-05-23.at.15.53.17.mp4

您还可以使用该isReachable功能来检查网站是否有效。

import SwiftUI
import SwiftUIWebView

struct SwiftUIView: View {

    @State private var showSheet = false
    var url = "invalidWebsite.com"
        
    var body: some View {
        
        VStack {

            Button {
                
                isReachable(urlString: url) { success in
                    if success {
                        showSheet.toggle()
                    }
                }
                
            } label: {
                Text("Show Sheet")
            }
            
        }
        .fullScreenCover(isPresented: $showSheet) {
            WebView(url: url, showProgressBar: true)
        }
    }
}

模拟器.屏幕.录音.-.iPhone.14.Pro.-.2023-05-23.at.15.56.17.mp4

GitHub

查看 Github