2
0

BrowserLauncher.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using MediaBrowser.Controller;
  3. using Microsoft.Extensions.Logging;
  4. namespace Emby.Server.Implementations.Browser
  5. {
  6. /// <summary>
  7. /// Assists in opening application URLs in an external browser.
  8. /// </summary>
  9. public static class BrowserLauncher
  10. {
  11. /// <summary>
  12. /// Opens the home page of the web client.
  13. /// </summary>
  14. /// <param name="appHost">The app host.</param>
  15. public static void OpenWebApp(IServerApplicationHost appHost)
  16. {
  17. TryOpenUrl(appHost, "/web/index.html");
  18. }
  19. /// <summary>
  20. /// Opens the swagger API page.
  21. /// </summary>
  22. /// <param name="appHost">The app host.</param>
  23. public static void OpenSwaggerPage(IServerApplicationHost appHost)
  24. {
  25. TryOpenUrl(appHost, "/swagger/index.html");
  26. }
  27. /// <summary>
  28. /// Opens the specified URL in an external browser window. Any exceptions will be logged, but ignored.
  29. /// </summary>
  30. /// <param name="appHost">The application host.</param>
  31. /// <param name="relativeUrl">The URL to open, relative to the server base URL.</param>
  32. private static void TryOpenUrl(IServerApplicationHost appHost, string relativeUrl)
  33. {
  34. try
  35. {
  36. string baseUrl = appHost.GetLocalApiUrl("localhost");
  37. appHost.LaunchUrl(baseUrl + relativeUrl);
  38. }
  39. catch (Exception ex)
  40. {
  41. var logger = appHost.Resolve<ILogger<IServerApplicationHost>>();
  42. logger?.LogError(ex, "Failed to open browser window with URL {URL}", relativeUrl);
  43. }
  44. }
  45. }
  46. }