Conocimientos previos necesarios
- Explicación de AEM Mobile
- Conocimientos sobre creación y publicación de contenido a través de On-Demand Portal
- Experiencia con las On-Demand Services API
Productos requeridos
- AEM Mobile
- Acceso a la On-Demand Services API
- Contenido compartido
Las On-Demand Services API (anteriormente denominadas “Content Producer Service API”) permiten que un desarrollador externo se integre con On-Demand Services. Este servicio le permite realizar lo siguiente:
- Gestionar artículos
- Gestionar colecciones
- Gestionar productos
- Gestionar notificaciones push
Cuando desee publicar varios artículos basados en HTML, puede usar Shared Content API para empaquetar el contenido que se comparte entre estos artículos. Este artículo explica cómo utilizar el contenido compartido.
En AEM Mobile, puede publicar artículos individuales. Cada artículo se identifica mediante su nombre de artículo (article_name). Cuando configura el contenido compartido, permite que varios artículos basados en HTML utilicen los mismos archivos CSS y JavaScript.

En este ejemplo, los archivos “css/style.css” y “js/main.js” se duplican en todos los artículos, lo que provoca sobrecarga. Al utilizar contenido compartido, estos archivos pueden añadirse en una entidad sharedContent y ser referenciados por cada artículo.

Con la versión 2017.2 de AEM Mobile (6 de febrero de 2017), el contenido compartido dinámico le permite actualizar contenido compartido sin necesidad de actualizar los artículos que hacen referencia a dicho contenido. Antes de esta versión, si utilizaba la entidad sharedContent, tenía que actualizar tanto el contenido compartido como los artículos vinculados a ese contenido. Después, se solicitaba a los usuarios de la aplicación que seleccionaran la opción correspondiente para obtener las actualizaciones. Con esta versión, puede utilizar la nueva entidad dynamicSharedContent para cargar contenido compartido. Al actualizar el contenido compartido dinámico y publicarlo, los cambios se realizan automáticamente en todos los artículos correspondientes. Ya no tendrá que actualizar los artículos vinculados ni los usuarios tendrán que tocar la opción de actualización.
Ambos flujos de trabajo, sharedContent y dynamicSharedContent, son compatibles. Esta sección se centra en el uso de contenido compartido dinámico. Si, por el contrario, desea utilizar el flujo de trabajo de contenido compartido anterior, utilice sharedContent en lugar de dynamicSharedContent donde corresponda.
-
Cargue los contenidos del artículo (comprimidos con el manifest.xml) en el servicio de inserción. Para obtener más información, consulte Creación de artículos HTML para AEM Mobile.
-
En el artículo, cargue un recurso de vínculo simbólico que haga referencia a la contentUrl compartida. Tenga en cuenta que, en los siguientes ejemplos, el campo “article_one” se aplica al nombre del artículo y el campo “compartido” se refiere al nombre de la carpeta que albergará los contenidos compartidos. En primer lugar, obtenga la última versión de la entidad dynamicSharedContent mediante una llamada GET. A continuación, actualice el vínculo al recurso compartido.
PUT /publication/<projectId>/article/article_one/contents;contentVersion=<cVersion3>/dynamicShared Content-Type: application/vnd.adobe.symboliclink+json {"href": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"}
-
PUT /publication/<projectId>/article/article_one/contents;contentVersion=<cVersion3>/fonts Content-Type: application/vnd.adobe.symboliclink+json {"href": "/publication/<projectId>/dynamicSharedContent/sc_two/contents;contentVersion=<cVersion2>/"}
-
PUT /publication/<projectId>/article/article_one;version=<entVersion>/contents
Ahora los elementos del contenido dentro de article_one pueden hacer referencia al contenido de la entidad dynamicSharedContent con solo utilizar el prefijo “shared” (para sc_one) y “fonts” (para sc_two). Las entidades dynamicSharedContent se ubican de forma relativa al artículo HTML, un directorio por encima.
El contenido HTML de article_one haría referencia al JavaScript y css de la siguiente forma:
<script src="../shared/js/logic.js"></script> <link rel="stylesheet" type="text/css" href="../shared/css/style.css">
@font-face { font-family: "myFirstFont"; src: "url(../fonts/Exotic_Regular.woff"); }
-
Publique la entidad dynamicSharedContent de las aplicaciones que no sean de verificación previa o active la verificación previa de las aplicaciones que sí lo sean con el fin de propagar los cambios de la entidad dynamicSharedContent a todos los artículos correspondientes.
PUT /job { "workflowType": "publish", "entity": { "/publication/dynamicSharedContent/sc_one;version=<entVersion>" } }
Las nuevas funciones de contenido compartido no influyen en los flujos de trabajo existentes relacionados con dicho contenido compartido. Si quiere aprovechar el contenido compartido dinámico, debe cambiar el contenido compartido existente para activar el nuevo flujo de trabajo dinámico.
-
Las nuevas funciones de contenido compartido no influyen en los flujos de trabajo existentes relacionados con dicho contenido compartido. Si quiere aprovechar el contenido compartido dinámico, debe cambiar el contenido compartido existente para activar el nuevo flujo de trabajo dinámico.
Cuando esté preparado para hacer la publicación, publique el contenido compartido dinámico. A continuación, publique los artículos que hacen referencia al contenido compartido.
Para actualizar el contenido compartido, añada o cambie los elementos del contenido compartido dinámico y selle la entidad. Genere la vista previa de los artículos que hacen referencia al contenido compartido y, después, publique el contenido compartido dinámico. Los cambios se reflejarán en los artículos correspondientes.
Nota:
Actualmente, no se puede cancelar la publicación del contenido compartido dinámico. Una solución temporal hasta que se ofrezca tal posibilidad consiste en quitar todos los contenidos de los archivos del contenido compartido dinámico y volver a publicarlos. Asimismo, puede quitar el vínculo simbólico a este contenido compartido dinámico de los artículos o las pancartas dinámicas vinculados.
Cuando utiliza contenido compartido en sus artículos, el visor debe descargar la entidad de contenido compartido completa antes de que pueda mostrarse el artículo. Plantéese la posibilidad de crear varias entidades de contenido compartido en vez de una entidad de mayor tamaño que incluya todo el contenido compartido.
La ruta en la cual está disponible el contenido depende de la creación del enlace simbólico, tal y como se muestra en los pasos 8 y 9. En el paso 8, se hace referencia a sc_one en la ruta “compartido”. En el paso 9, se hace referencia a sc_two en la ruta “fuentes”. Puede comparar las formas en que funciona el contenido compartido mediante vínculos simbólicos en un sistema operativo Unix.
El contenido compartido solo se puede administrar mediante la On-Demand Services API. Actualmente, no existe ninguna interfaz de usuario en el portal de servicios bajo demanda para gestionar el contenido compartido.
Las On-Demand Services API incluyen ejemplos de sharedContent; consulte la carpeta /sharedContent.