如何在使用自定义用户代理的 SwiftUI 中创建 Safari 视图?
Posted
技术标签:
【中文标题】如何在使用自定义用户代理的 SwiftUI 中创建 Safari 视图?【英文标题】:How do I create a Safari View in SwiftUI that uses a custom user agent? 【发布时间】:2021-01-14 00:29:28 【问题描述】:我正在尝试使用 SafariServices 框架创建一个使用 Safari 视图的 SwiftUI 应用程序,并为该视图分配一个自定义用户代理,以便当我真正使用 Safari 时,网站认为 Web 浏览器是 macOS 的 Safari适用于 iPhone 上的 ios。
这是我使用 UIKit 包装的 Safari 视图:
struct SafariView: UIViewControllerRepresentable
let url: String
func makeUIViewController(context: UIViewControllerRepresentableContext<SafariView>) -> SFSafariViewController
var safariViewController = SFSafariViewController(url: URL.init(string: url)!)
safariViewController.preferredBarTintColor = .systemBackground
safariViewController.configuration.entersReaderIfAvailable = false
safariViewController.dismissButtonStyle = .close
return safariViewController
func updateUIViewController(_ uiViewController: SFSafariViewController, context: UIViewControllerRepresentableContext<SafariView>)
我似乎无法弄清楚我需要做什么才能应用自定义用户代理。我确定我需要在 makeUIViewController 函数中添加一些东西,但我不知道我需要使用什么属性。有人可以帮帮我吗?
【问题讨论】:
这能回答你的问题吗? Force SFSafariViewController to load the desktop version of a website 【参考方案1】:SFSafariViewController
确实是 Safari 的一个实例,可以完全访问其所有功能,因此您不能更改用户代理。但是,如果您需要此功能,您可以改用WKWebView
并设置customUserAgent。
【讨论】:
以上是关于如何在使用自定义用户代理的 SwiftUI 中创建 Safari 视图?的主要内容,如果未能解决你的问题,请参考以下文章