有没有办法通过使用外部网站传递的值在AEM中构建客户端上下文?外部网站发送用户信息,如IP地址,页面数据,地理位置等。我想构建ClientContext JSON而不使用CQ_Analytics.ClientContextMgr.init,因为信息来自外部系统。
例如:我们知道访问我们网站的位置。我们希望将此值传递给AEM并设置客户端上下文,以便我们可以获取此位置的目标内容。
我们的最终目标是获得这样的东西(但我们正试图在不自己构建JSON的情况下实现这一目标):
CQ_Analytics.ClientContextMgr.clientcontext = JSON.parse(' {" profile":{" country":" US"}}&#39 );
AEM是否提供了构建JSON的Javascript API?
答案 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。