配置ContextHub

ContextHub是存储、处理和呈现上下文数据的框架。 有关ContextHub的详细信息,请参阅开发人员文档。 ContextHub替换了触屏UI中的Client Context

配置ContextHub工具栏,以控制它是否显示在预览模式中、创建ContextHub存储区以及使用触屏优化UI添加UI模块。

禁用ContextHub

默认情况下,AEM安装中启用ContextHub。 可以禁用ContextHub以阻止它加载js/css和初始化。 禁用ContextHub有两种选项:

  • 编辑ContextHub的配置并选中选项​禁用ContextHub

    1. 在边栏中,单击或点按​工具>站点> ContextHub
    2. 单击或点按默认的​配置容器
    3. 选择​ContextHub配置​并单击或点按​编辑选定元素
    4. 单击或点按​禁用ContextHub,然后单击或点按​保存

  • 使用CRXDE Lite将属性disabled设置为​true /libs/settings/cloudsettings
注意

由于AEM 6.4中的存储库重 组,ContextHub配置的位置从 /etc/cloudsettings 更改为:

  • /libs/settings/cloudsettings
  • /conf/global/settings/cloudsettings
  • /conf/<tenant>/settings/cloudsettings

显示和隐藏ContextHub UI

将AdobeGranite ContextHub OSGi服务配置为在页面上显示或隐藏ContextHub UI。 此服务的PID为com.adobe.granite.contexthub.impl.ContextHubImpl.

要配置服务,您可以使用Web控制台或使用存储库](/docs/experience-manager-65/sites-deploying/configuring-osgi.html?lang=zh-Hans#osgi-configuration-in-the-repository)中的[ JCR节点:

  • Web控制台: 要显示UI,请选择显示UI属性。要隐藏UI,请清除隐藏UI属性。
  • JCR节点: 要显示UI,请将布尔属 com.adobe.granite.contexthub.show_ui 性设置为 true。要隐藏UI,请将属性设置为false

显示ContextHub UI时,它仅显示在AEM作者实例的页面上。 UI不显示在发布实例的页面上。

添加ContextHub UI模式和模块

配置在预览模式下ContextHub工具栏中显示的UI模式和模块:

  • UI模式:相关模块组
  • 模块:用于显示存储中的上下文数据并允许作者操作上下文的构件

UI模式在工具栏左侧显示为一系列图标。 选择后,UI模式的模块将显示在右侧。

chlimage_1-319

图标是Coral UI图标库的引用。

添加UI模式

添加UI模式以组相关的ContextHub模块。 在创建UI模式时,您提供标题和图标,它们显示在ContextHub工具栏中。

  1. 在Experience Manager边栏上,单击或点按工具>站点> Context Hub。

  2. 单击或点按默认的配置容器。

  3. 单击或点按Context Hub配置。

  4. 单击或点按创建按钮,然后单击或点按Context Hub UI模式。

    chlimage_1-320

  5. 提供以下属性的值:

    • UI模式标题:标识UI模式的标题
    • 模式图标:要使用的Coral UI图标的选择器,例如coral-Icon--user
    • 已启用:选择此项可在ContextHub工具栏中显示UI模式
  6. 单击或点按保存。

添加UI模块

将ContextHub UI模块添加到UI模式,以便它显示在ContextHub工具栏中以预览页面内容。 添加UI模块时,您将创建向ContextHub注册的模块类型实例。 要添加UI模块,您必须知道关联模块类型的名称。

AEM提供基本UI模块类型以及几种示例UI模块类型,您可以在这些类型上对UI模块进行基础设置。 下表对每种方法进行了简要说明。 有关开发自定义UI模块的信息,请参阅创建ContextHub UI模块

UI模块属性包括详细信息配置,您可以在其中提供模块特定属性的值。 您以JSON格式提供详细配置。 表中的“模块类型”列提供了指向每个UI模块类型所需JSON代码的相关信息的链接。

模块类型 描述 存储
contexthub.base 通用UI模块类型 在UI模块属性中配置
contexthub.browserinfo 显示有关浏览器的信息 surferinfo
contexthub.datetime 显示日期和时间信息 datetime
contexthub.device 显示客户端设备 模拟器
contexthub.location 显示客户端的经度和纬度,以及地图上的位置。 允许您更改位置。 地理位置
contexthub.screen-orientation 显示设备的屏幕方向(横向或纵向) 模拟器
contexthub.tagcloud 显示有关页面标记的统计信息 塔格云
granite.用户档案 显示当前用户的用户档案信息,包括authorizableID、displayName和familyName。 可以更改displayName和familyName的值。 配置文件
  1. 在Experience Manager边栏上,单击或点按工具>站点> ContextHub。

  2. 单击或点按要向其添加UI模块的配置容器。

  3. 单击或键入要向其添加UI模块的ContextHub配置。

  4. 单击或点按要添加UI模块的UI模式。

  5. 单击或点按创建按钮,然后单击或点按ContextHub UI模块(通用)。

    chlimage_1-321

  6. 提供以下属性的值:

    • UI模块标题:标识UI模块的标题
    • 模块类型:模块类型
    • 已启用:选择此项可在ContextHub工具栏中显示UI模块
  7. (可选)要覆盖默认的存储配置,请输入JSON对象以配置UI模块。

  8. 单击或点按保存。

创建ContextHub存储

创建Context Hub存储库以保留用户数据并根据需要访问数据。 ContextHub存储基于注册的存储候选。 创建商店时,需要注册商店候选者的storeType值。 (请参阅创建自定义存储候选项。)

详细的存储配置

配置存储时,Detail Configuration属性允许您为存储特定属性提供值。 该值基于存储的init函数的config参数。 因此,是否需要提供此值以及值的格式取决于存储。

Detail Configuration属性的值是JSON格式的config对象。

候选存储示例

AEM提供以下可作为商店基础的样本商店候选。

存储类型 描述
aem.segmentation 存储已解析和未解析的ContextHub区段。 自动从ContextHub SegmentManager检索区段
aem.resolved区段 存储当前解析的区段。 监听ContextHub SegmentManager服务以自动更新存储
contexthub.geolocation 存储浏览器位置的经度和纬度。
contexthub.datetime 存储浏览器位置的当前日期、时间和季节
granite.emulators 定义多个设备的属性和功能,并检测当前客户端设备
contexthub.generic-jsonp 从JSONP服务检索和存储数据
granite.用户档案 存储当前用户的用户档案数据
contexthub.surferinfo 存储有关客户端的信息,如设备信息、浏览器类型和窗口方向
contexthub.tagcloud 存储页面标记和标记计数
  1. 在Experience Manager边栏上,单击或点按工具>站点> ContextHub。

  2. 单击或点按默认配置容器。

  3. 单击或点按Contexthub配置

  4. 要添加商店,请单击或点按创建图标,然后单击或点按ContexHub商店配置。

    chlimage_1-322

  5. 提供基本配置属性的值,然后单击或点按下一步:

    • 配置标题: 标识存储的标题
    • 存储类 型:存储候选项的存储类型属性的值
    • 必需:选
    • 启用: 选择以启用存储
  6. (可选)要覆盖默认的存储配置,请在“详细配置(JSON)”框中输入JSON对象。

  7. 单击或点按保存。

示例:使用JSONP服务

此示例说明如何在UI模块中配置存储和显示数据。 在此示例中,jsontest.com站点的MD5服务用作存储的数据源。 服务以JSON格式返回给定字符串的MD5哈希代码。

配置contexthub.generic-jsonp存储,以便它存储服务调用https://md5.jsontest.com/?text=%22text%20to%20md5%22的数据。 服务返回UI模块中显示的以下数据:

{
   "md5": "919a56ab62b6d5e1219fe1d95248a2c5",
   "original": "\"text to md5\""
}

创建contexthub.generic-jsonp存储

contexthub.generic-jsonp示例存储候选项允许您从JSONP服务或返回JSON数据的Web服务检索数据。 对于此存储候选项,请使用存储配置提供有关要使用的JSONP服务的详细信息。

ContextHub.Store.JSONPStore Javascript类的init函数定义一个初始化此存储候选的config对象。 config对象包含一个service对象,该对象包含有关JSONP服务的详细信息。 要配置存储,请提供JSON格式的service对象作为“Detail Configuration”属性的值。

要保存jsontest.com站点的MD5服务中的数据,请使用使用以下属性创建ContextHub Store中的过程:

  • 配置标题: md5

  • 存储类型: contexthub.generic-jsonp

  • 必需:选

  • 启用:选

  • 详细配置 (JSON):

    {
     "service": {
     "jsonp": false,
     "timeout": 1000,
     "ttl": 1800000,
     "secure": false,
     "host": "md5.jsontest.com",
     "port": 80,
     "params":{
     "text":"text to md5"
         }
       }
     }
    

为md5数据添加UI模块

将UI模块添加到ContextHub工具栏以显示存储在示例md5商店中的数据。 在此示例中,contexthub.base模块用于生成以下UI模块:

chlimage_1-323

使用添加UI模块中的步骤将UI模块添加到现有UI模式,如示例Perona UI模式。 对于UI模块,请使用以下属性值:

  • UI模块标题: MD5

  • 模块类型: contexthub.base

  • 详细配置 (JSON):

    {
     "icon": "coral-Icon--data",
     "title": "MD5 Converstion",
     "storeMapping": { "md5": "md5" },
     "template": "<p> {{md5.original}}</p>;
                  <p>{{md5.md5}}</p>"
    }
    

调试ContextHub

可以启用ContextHub的调试模式以允许进行疑难解答。 调试模式可以通过ContextHub配置或通过CRXDE启用。

通过配置

编辑ContextHub的配置并选中选项​Debug

  1. 在边栏中,单击或点按​工具>站点> ContextHub
  2. 单击或点按默认的​配置容器
  3. 选择​ContextHub配置​并单击或点按​编辑选定元素
  4. 单击或点按​调试,然后单击或点按​保存

通过CRXDE

使用CRXDE Lite将属性debug设置为​true,位于:

  • /conf/global/settings/cloudsettings
  • /conf/<tenant>/settings/cloudsettings
注意

对于仍位于其旧路径下的ContextHub配置,设置debug property的位置为/libs/settings/cloudsettings/legacy/contexthub

静默模式

“静默”模式抑制所有调试信息。 与常规调试选项不同,静默模式是全局设置,优先于ContextHub配置级别上的任何调试设置。

这对于您的发布实例非常有用,因为您根本不需要任何调试信息。 由于它是全局设置,因此它通过OSGi启用。

  1. 打开位于http://<host>:<port>/system/console/configMgr的​Adobe Experience ManagerWeb控制台配置
  2. 搜索​AdobeGranite ContextHub
  3. 单击配置​AdobeGranite ContextHub​以编辑其属性
  4. 选中选项​静默模式​并单击​保存

升级后恢复ContextHub配置

当执行升级到AEM时,将备份ContextHub配置并将其存储在安全位置。 在升级过程中,将安装默认的ContextHub配置,替换现有配置。 需要备份才能保留您所做的任何更改或添加内容。

ContextHub配置存储在以下节点下名为contexthub的文件夹中:

  • /conf/global/settings/cloudsettings
  • /conf/<tenant>/settings/cloudsettings

升级后,备份存储在名为contexthub的节点下的一个文件夹中:

/conf/global/settings/cloudsettings/default-pre-upgrade_yyyymmdd_xxxxxxx
/conf/<tenant>/settings/cloudsettings/default-pre-upgrade_yyyymmdd_xxxxxxx

节点名称的yyyymmdd部分是执行升级的日期。

要恢复ContextHub配置,请使用CRXDE Lite将代表您的商店、UI模式和UI模块的节点从default-pre-upgrade_yyyymmdd_xxxxxx节点下复制到以下位置:

  • /conf/global/settings/cloudsettings
  • /conf/<tenant>/settings/cloudsettings

在此页面上

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free