配置应用

概述

WinFormium 使用 WinFormiumApp 类的静态方法 CreateBuilder 来创建应用程序的构建器 AppBuilder。在构建器中您可以设置 CEF 的环境参数、应用程序的运行模式、应用程序的用户数据文件夹、应用程序的资源文件夹等。

AppBuilder 提供了一系列的方法用于配置 WinFormium 应用程序,在您配置完这些参数后,使用 Build 方法创建一个 WinFormium 应用程序实例并使用 Run 方法来启动应用程序。

  1. var app = WinFormiumApp.CreateBuilder()
  2. // 在这里配置应用程序
  3. // ...
  4. .Build()
  5. .Run();

请参考本章节内容了解如何配置 WinFormium 应用程序。

使用启动配置

使用 WinFormium 应用构造器 AppBuilderUseWinFormiumApp<T>() 泛型方法传入启动配置类,更多内容请参考《启动配置》

启用内置浏览器

在使用 WinFormium 应用时,当用户点击应用程序中的链接时,WinFormium 应用会自动打开系统默认浏览器来打开链接。如果您希望使用 WinFormium 内置的浏览器窗口打开链接,您可以使用 AppBuilder.UseBuiltInBrowser() 方法启用内置浏览器。

  1. var app = WinFormiumApp.CreateBuilder()
  2. .UseBuiltInBrowser()
  3. //...
  4. ;

配置应用程序的语言和区域性

WinFormium 应用程序默认使用当前系统的语言和区域性,您可以使用 AppBuilder.UseCulture() 方法来配置应用程序的语言和区域性。UserCulture 方法接受一个 string 类型的参数,该参数为语言和区域性的标识符,例如 zh-CN 表示中文简体,en-US 表示英文美国。

  1. var app = WinFormiumApp.CreateBuilder()
  2. .UseCulture("en-US")
  3. //...
  4. ;

配置应用程序以单例模式运行

使用 AppBuilder.UseSingleInstance() 方法配置应用程序以单例模式运行,如果应用程序已经在运行,则可以选择激活已经运行的应用程序。UseSingleInstance 方法接受一个 Aciton<OnApplicationInstanceRunningHanlder> 参数,OnApplicationInstanceRunningHanlder 包含以下参数和方法:

  • int ProcessId { get; } 已经运行的应用程序的进程 ID。
  • IntPtr MainWindowHandle { get; } 已经运行的应用程序的主窗体句柄。
  • Process RunningProcess { get; } 已经运行的应用程序的进程对象。
  • void ActiveRunningInstance() 激活已经运行的应用程序。
  1. var app = WinFormiumApp.CreateBuilder()
  2. .UseSingleApplicationInstanceMode(handler =>
  3. {
  4. var retval = MessageBox.Show($"已经有一个实例在运行了:{handler.ProcessId}。\r\n是否打开其主窗体?", "单例模式已启用", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
  5. if (retval == DialogResult.Yes)
  6. {
  7. handler.ActiveRunningInstance();
  8. }
  9. })
  10. //...
  11. ;

配置服务

使用 AppBuilder.UseServices() 方法配置应用程序的服务,该方法接受一个 Action<IServiceCollection> 参数,该参数包含了一个 IServiceCollection 类型的参数,您可以在这里注册您的服务。使用 AppBuilder 服务将会在应用程序的每个进程中注册。

如果服务近需要在主进程中运行,则应该在 WinFormiumStartupWinFormiumMain 方法中注册服务。有关 WinFormiumStartup 的详细信息,请参考《启动配置》

启用开发工具菜单

在设计 WinFormium 应用程序时,使用 DevTools 调试工具是非常有用的。您可以在 Formium 中使用 OpenDevTools 方法打开 DevTools 调试工具。如果您希望在应用程序中启用 DevTools 菜单,您可以使用 AppBuilder.UseDevToolsMenu() 方法启用 DevTools 菜单,这样您就可以在任意位置单击鼠标右键,在上下文菜单中开启 DevTools。

  1. var app = WinFormiumApp.CreateBuilder()
  2. .UseDevToolsMenu()
  3. //...
  4. ;

清空浏览器缓存

在 CEF 的接口中,没有提供清空浏览器缓存的方法。虽然 WinFormium 提供了 AppBuilder.ClearCache() 方法来清空浏览器缓存,但这是使用了非常暴力的方式来清空缓存,该方法会删除 CEF 用户数据文件夹中的 Cache 文件夹,这样做的后果是您的应用程序中的所有缓存都会被清空,包括 Cookie、浏览器历史记录等,因此您无法指定删除某种类型的缓存。

并且,当 CEF 加载后会锁定用户数据文件夹,这样您就无法删除用户数据文件夹中的文件,因此您必须在 CEF 加载前清空缓存。

  1. var app = WinFormiumApp.CreateBuilder()
  2. .ClearCache()
  3. //...
  4. ;

另请参阅