WebViews.swift 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import Foundation
  2. extension BackendFeatures {
  3. /// Backend methods for web views.
  4. ///
  5. /// These are used by ``WebView``.
  6. @MainActor
  7. public protocol WebViews: Core {
  8. /// Create a web view.
  9. ///
  10. /// - Returns: A web view.
  11. func createWebView() -> Widget
  12. /// Update a web view to reflect the given environment and use the given
  13. /// navigation handler.
  14. ///
  15. /// - Parameters:
  16. /// - webView: The web view.
  17. /// - environment: The current environment.
  18. /// - onNavigate: The action to perform when a navigation occurs.
  19. func updateWebView(
  20. _ webView: Widget,
  21. environment: EnvironmentValues,
  22. onNavigate: @escaping (URL) -> Void
  23. )
  24. /// Navigates a web view to a given URL.
  25. ///
  26. /// - Parameters:
  27. /// - webView: The web view.
  28. /// - url: The URL to navigate `webView` to.
  29. func navigateWebView(_ webView: Widget, to url: URL)
  30. }
  31. }