List icon 目录

Profile

本指南介绍了如何管理 Chromium 配置文件。

请考虑阅读架构指南,以更好地了解 JxBrowser 架构的设计方式、工作原理以及它提供的主要组件。

概述

Profile 存储用户数据,如导航历史、cookie、缓存、密码等。

Profile 类提供了对诸如 Profile 的名称、存储其数据的目录的绝对路径等信息的访问,并且提供了对 Profile 相关服务的访问,例如:

  • ZoomLevels
  • Plugins
  • Proxy
  • Network
  • SpellChecker
  • CookieStore
  • HttpCache
  • HttpAuthCache
  • Downloads
  • Permissions

属于同一 ProfileBrowser 实例会共享 cookie、历史记录、缓存和其他数据。如果您不想在两个 Browser 实例之间共享数据,那么您可以创建多个 Profile,并使用属于不同 Profile 的 Browser 实例。

要创建和删除 Profile,访问所有已创建的 Profile,包括默认 Profile,请使用 Profiles 服务:

Profiles profiles = engine.profiles(); 
val profiles = engine.profiles()

默认 Profile

当您创建一个 Engine 实例时,默认 Profile 会自动创建。您可以使用以下方法访问它:

Profile defaultProfile = profiles.defaultProfile();
val defaultProfile = profiles.defaultProfile()

隐身

要使默认配置文件处于隐身模式,请在创建 Engine 实例时使用隐身模式选项。此选项仅影响默认 Profile。

创建 Profile

要创建一个新的常规 Profile,请使用 Profiles.newProfile(String) 方法:

Profile profile = profiles.newProfile("MyProfile");
val profile = profiles.newProfile("MyProfile")

Profile 将其数据(例如导航历史记录、代理设置、cookie、拼写检查器配置等)存储在用户数据目录内的单独目录中。

创建隐身 Profile

要创建隐身 Profile,请使用以下方法:

Profile profile = profiles.newIncognitoProfile("MyIncognitoProfile");
val profile = profiles.newIncognitoProfile("MyIncognitoProfile")

获取 Profile

您可以使用 Profiles.list() 方法获取所有已创建 Profile 的列表,包括默认 Profile。例如:

List<Profile> profiles = profiles.list();
val profiles = profiles.list()

删除 Profile

要删除现有 Profile,请使用 Profiles.delete(Profile) 方法。例如:

profiles.delete(profile);
profiles.delete(profile)

当您删除 Profile 时,所有与其相关联的 Browser 实例都会自动关闭。尝试使用已删除的 Profile 将导致 IllegalStateException 错误。

默认 Profile 无法被删除。尝试删除默认 Profile 会导致 IllegalArgumentException

偏好设置

每个 Profile 都有一组偏好设置。你可以使用以下方法来访问 Profile 的偏好设置:

ProfilePreferences profilePrefs = profile.preferences();
val profilePrefs = profile.preferences()

Profile 偏好设置存储在用户数据目录中。当您创建 Engine 实例时,这些偏好设置将从目录中恢复。

Web 表单自动填充

您可以让 JxBrowser 使用保存的信息自动填充表单,比如用户名和密码。当用户在新的在线表单中输入用户名和密码时,库可能会询问您是否想要保存这些信息。

有关如何处理保存密码请求和管理所有已保存密码的更多信息,请参阅密码

要禁用网页表单自动填充,请使用:

profile.preferences().disableAutofill();
profile.preferences().disableAutofill()
Go Top