AEM移动内容更新处理程序

时间:2015-09-15 15:34:02

标签: cordova adobe aem

我引用了aem-phonegap-kitchen-sinkaem-phonegap-starter-kit。我到了可以导出我的PhoneGap应用程序,构建和运行它的地步。但是,我尝试在其中一个页面模板中添加其他图像。仅导出名为image的图像资源。所有其他图像都被忽略。如果您看到我的内容树,image将导出为page-one.img.png,但其他两个将被忽略。

content tree

我开始研究aem-phonegap-kitchen-sink和[aem-phonegap-starter-kit]的ContentSync配置,我发现这些处理程序被引用

  • mobileapprootpage
  • mobileapppages
  • mobilepageassets
  • mobilecontentlisting

我查找了content sync documentation(我正在使用6.1),但这只提到了copyassets这样的简单处理程序。

我到处都看了,我找不到他们的文件。我认为mobilepageassets正在导出我的图像。

那么如何才能导出我的其他图像呢?

更新

我尝试将wcm/foundation/components/image添加到com.day.cq.wcm.contentsync.impl.handler.PagesUpdateHandler OSGi配置中。这没有效果。 我也尝试将我的图像资源类型切换到foundation/components/image。这也没有效果。

2 个答案:

答案 0 :(得分:2)

由于我找不到任何文档,我找到了mobilepageassets的内容更新处理程序实现并对其进行了反编译。

使用

创建custom handler component
@Component(factory="com.day.cq.contentsync.handler.ContentUpdateHandler/identifier")

为了找到mobilepageassets实现,我转到services console并使用

进行过滤器查找
(component.factory=*mobilepageassets)

从那里我可以获得实现类,以及我下载并通过Luyten decomplier运行的JAR文件的位置。

通过查看该来源,我开始理解两件事:

  1. 我得到page-name.img.png的唯一原因是因为我发生了命名我的图像资源image,这与WCM页面缩略图使用的名称相同。
  2. 此更新处理程序读取其自己的OSGi配置,该配置具有cq.pagesupdatehandler.imageresourcetypes的属性。
  3. 最后,我添加了com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePageAssetsUpdateHandler OSGi配置

    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
        jcr:primaryType="sling:OsgiConfig"
        cq.pagesupdatehandler.imageresourcetypes="[wcm/foundation/components/image]"/>
    

    确实导出了我的图像,但路径错误。它们被导出到'jcr_content'文件夹,其中标记正在寻找'__jcr_content'。我确实注意到PG入门套件&amp;厨房水槽有特殊处理。我找到mobileapps/components/image而不是实现我自己的图像组件,这对我的需求来说足够简单。在那种情况下,我甚至不需要OSGi配置。

答案 1 :(得分:-1)

即使在AEM 6.2中,您也可以在OSGi控制台中添加组件的resourceTypes以获取以下服务:

com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePageAssetsUpdateHandler.name -

com.adobe.cq.mobile.platform.impl.contentsync.handler.MobilePagesUpdateHandler.name -

com.adobe.cq.mobile.platform.impl.contentsync.handler.MobileRootPageUpdateHandler.name -

com.adobe.cq.mobile.platform.impl.contentsync.handler.OffersUpdateHandler.name。

相关问题