はじめに
Webページを表示したい(例えばお問い合わせフォーム)時にSFSafariViewController
を使うと思いますが、SwiftUIでは一つのViewとして扱うことが出来ます。
UIをオーバーレイしたいとかで、WKWebViewを頑張ってカスタマイズせずに利用出来ます。
実装
import SwiftUI
import SafariServices
struct SafariView: UIViewControllerRepresentable {
var url: URL
typealias UIViewControllerType = SFSafariViewController
func makeUIViewController(context: Context) -> SFSafariViewController {
let config = SFSafariViewController.Configuration()
config.barCollapsingEnabled = false
let safariViewController = SFSafariViewController(url: url, configuration: config)
return safariViewController
}
func updateUIViewController(_ uiViewController: SFSafariViewController, context: Context) {
}
}
struct SafariView_Previews: PreviewProvider {
static var previews: some View {
SafariView(url: URL(string: "")!)
}
}