ios - 如何在使用自定义用户代理的 SwiftUI 中创建 Safari 视图?
问题描述
我正在尝试使用 SafariServices 框架创建一个使用 Safari 视图的 SwiftUI 应用程序,并为该视图分配一个自定义用户代理,以便网站相信 Web 浏览器是 macOS 的 Safari,而我真的在使用 Safari for 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 函数中添加一些东西,但我不知道我需要使用什么属性。有人能帮助我吗?
解决方案
ASFSafariViewController
确实是 Safari 的一个实例,可以完全访问其所有功能,因此您不能更改用户代理。但是,如果您需要此功能,您可以WKWebView
改用并设置customUserAgent。
推荐阅读
- mysql - 为什么 CHAR 在 MySQL 中没有填充
- sql - derby sql 两个聚合值之间的区别或如何组合两个 sql 语句
- php - openssl_encrypt(): iv key pass is 24 bytes long 这比预期的 16 长
- php - 扩展 Whoops PrettyPageHandler 时的属性 null
- css - CSS Grid - 如何让图像填充网格项空间
- java - 获取 InputMismatchException
- python-3.x - aiohttp:如何最好地缓解“OSError:打开的文件太多”
- runtime-error - appmaker:我收到错误 com.google.web.bindery.event.shared.UmbrellaException:异常捕获:路径段不存在
- docker - 使用两个 docker compose 在容器之间的 docker 网络中调用 web api
- hive - Airflow HiveCliHook 连接到远程配置单元集群?