Как создать представление Safari в SwiftUI, использующее пользовательский агент?
Я пытаюсь создать приложение SwiftUI, которое использует представление Safari, используя структуру SafariServices, и назначаю настраиваемый пользовательский агент для этого представления, чтобы веб-сайты считали, что веб-браузер — это Safari для macOS, когда я действительно использую Safari для iOS на айфон.
Вот представление Safari, которое я обернул с помощью UIKit:
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, но я понятия не имею, какой атрибут мне нужно использовать. Может кто-то мне помочь, пожалуйста?
1 ответ
А
SFSafariViewController
действительно является экземпляром Safari с полным доступом ко всем его функциям, поэтому вам не разрешено изменять пользовательский агент. Однако, если вам нужна эта функциональность, вы можете использовать
WKWebView
вместо этого и установите customUserAgent.