Как создать представление 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.

Другие вопросы по тегам