如何通过传递来自外部系统的值在AEM中构建客户端上下文?

时间:2017-05-17 22:07:34

标签: cq5 aem

有没有办法通过使用外部网站传递的值在AEM中构建客户端上下文?外部网站发送用户信息,如IP地址,页面数据,地理位置等。我想构建ClientContext JSON而不使用CQ_Analytics.ClientContextMgr.init,因为信息来自外部系统。

例如:我们知道访问我们网站的位置。我们希望将此值传递给AEM并设置客户端上下文,以便我们可以获取此位置的目标内容。

我们的最终目标是获得这样的东西(但我们正试图在不自己构建JSON的情况下实现这一目标):

CQ_Analytics.ClientContextMgr.clientcontext = JSON.parse(' {" profile":{" country":" US"}}&#39 );

AEM是否提供了构建JSON的Javascript API?

1 个答案:

答案 0 :(得分:1)

您需要使用以下处提供的AEM文档扩展客户端上下文: Creating a Custom Context Store Component

按照说明操作,直至Initialization部分,您需要在jsp文件中填充扩展名中的数据。

所以在你的情况下,这将是这样的:

if(!locstore){
    locstore = CQ_Analytics.JSONPStore.registerNewInstance("<%= store %>", 
    "<%= jsonpurl %>",{});
}

其中jsonpurl将是您提供json(p)格式的外部数据的服务的位置。这将使用您想要的值初始化您的商店,您不必担心手工json手工制作。

  

使用AEM中的JS库在客户端构建客户端上下文。您需要一些绑定参数来将外部数据源连接到当前客户端上下文。

详细教程可以找到here