AEM Mobile 内容更新处理程序
AEM Mobile Content Update Handlers
我指的是 aem-phonegap-kitchen-sink and aem-phonegap-starter-kit。我到了可以导出我的 PhoneGap 应用程序、构建和 运行 的地步。但是,我尝试将其他图像添加到我的一个页面模板中。仅导出名为 image
的图像资源。所有其他图像都将被忽略。如果您在下方看到我的内容树,image
将导出为 page-one.img.png
,但其他两个将被忽略。
我开始研究 aem-phonegap-kitchen-sink 和 [aem-phonegap-starter-kit] 的 ContentSync 配置,我发现这些处理程序被引用了
- mobileapprootpage
- 移动应用页面
- 移动页面资产
- 移动内容列表
我查找了 content sync documentation(我使用的是 6.1),但这只提到了简单的处理程序,如 copy
和 assets
。
我找遍了所有地方,但找不到关于它们的文档。我认为 mobilepageassets
是导出我的图像的内容。
那么如何导出我的其他图像?
更新
我试图将 wcm/foundation/components/image
添加到 com.day.cq.wcm.contentsync.impl.handler.PagesUpdateHandler
OSGi 配置中。这没有效果。
我还尝试将我的图像资源类型切换为 foundation/components/image
。那也没有效果。
由于找不到任何文档,我找到了 mobilepageassets
的内容更新处理程序实现并对其进行了反编译。
创建的
@Component(factory="com.day.cq.contentsync.handler.ContentUpdateHandler/identifier")
所以为了找到 mobilepageassets
实现,我去了 services console 并使用
进行了过滤器查找
(component.factory=*mobilepageassets)
从那里,我能够通过 Luyten 反编译器获得实现 class,以及我下载的 JAR 文件和 运行 的位置。
通过查看该来源,我明白了两件事:
- 我得到
page-name.img.png
的唯一原因是我碰巧将我的图像资源命名为 image
,这与 WCM 页面缩略图使用的名称相同。
- 这个更新处理程序读取它自己的 OSGi 配置,它有一个 属性 用于
cq.pagesupdatehandler.imageresourcetypes
。
最后,我添加了 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 入门套件和厨房水槽中对此进行了特殊处理。我没有实现自己的图像组件,而是发现 mobileapps/components/image
这对我的需要来说足够简单了。在那种情况下,我什至不需要 OSGi 配置。
即使在 AEM 6.2 中,您也可以在 OSGi 控制台中为以下服务添加组件的资源类型:
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
我指的是 aem-phonegap-kitchen-sink and aem-phonegap-starter-kit。我到了可以导出我的 PhoneGap 应用程序、构建和 运行 的地步。但是,我尝试将其他图像添加到我的一个页面模板中。仅导出名为 image
的图像资源。所有其他图像都将被忽略。如果您在下方看到我的内容树,image
将导出为 page-one.img.png
,但其他两个将被忽略。
我开始研究 aem-phonegap-kitchen-sink 和 [aem-phonegap-starter-kit] 的 ContentSync 配置,我发现这些处理程序被引用了
- mobileapprootpage
- 移动应用页面
- 移动页面资产
- 移动内容列表
我查找了 content sync documentation(我使用的是 6.1),但这只提到了简单的处理程序,如 copy
和 assets
。
我找遍了所有地方,但找不到关于它们的文档。我认为 mobilepageassets
是导出我的图像的内容。
那么如何导出我的其他图像?
更新
我试图将 wcm/foundation/components/image
添加到 com.day.cq.wcm.contentsync.impl.handler.PagesUpdateHandler
OSGi 配置中。这没有效果。
我还尝试将我的图像资源类型切换为 foundation/components/image
。那也没有效果。
由于找不到任何文档,我找到了 mobilepageassets
的内容更新处理程序实现并对其进行了反编译。
@Component(factory="com.day.cq.contentsync.handler.ContentUpdateHandler/identifier")
所以为了找到 mobilepageassets
实现,我去了 services console 并使用
(component.factory=*mobilepageassets)
从那里,我能够通过 Luyten 反编译器获得实现 class,以及我下载的 JAR 文件和 运行 的位置。
通过查看该来源,我明白了两件事:
- 我得到
page-name.img.png
的唯一原因是我碰巧将我的图像资源命名为image
,这与 WCM 页面缩略图使用的名称相同。 - 这个更新处理程序读取它自己的 OSGi 配置,它有一个 属性 用于
cq.pagesupdatehandler.imageresourcetypes
。
最后,我添加了 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 入门套件和厨房水槽中对此进行了特殊处理。我没有实现自己的图像组件,而是发现 mobileapps/components/image
这对我的需要来说足够简单了。在那种情况下,我什至不需要 OSGi 配置。
即使在 AEM 6.2 中,您也可以在 OSGi 控制台中为以下服务添加组件的资源类型:
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