Vereisten

Vereiste kennis

  • AEM Mobile leren kennen
  • Kennis van het maken en publiceren van inhoud via de on-demandportal
  • Ervaring met On-Demand Services API's

Vereiste producten

  • AEM Mobile
  • Toegang tot de On-Demand Services API
  • Shared Content

Inleiding voor gedeelde inhoud

Met de On-Demand Services API's (voorheen “Content Producer Service API's”) kan een externe ontwikkelaar integratie met de On-Demand Services instellen. Met deze service kunt u de volgende handelingen uitvoeren:

  • Artikelen beheren
  • Collecties beheren
  • Producten beheren
  • Pushmeldingen beheren

Wanneer u meerdere HTML-artikelen wilt publiceren, kunt u de API Shared Content gebruiken om inhoud te bundelen die door deze artikelen wordt gedeeld. In dit artikel wordt uitgelegd hoe u Shared Content kunt gebruiken.

In AEM Mobile kunt u individuele artikelen publiceren. Elk artikel is te herkennen aan de waarde voor de artikelnaam (article_name). Wanneer u gedeelde inhoud instelt, zorgt u ervoor dat dezelfde CSS- en Javascript-bestanden voor meerdere HTML-artikelen kunnen worden gebruikt.

Als u Shared Content niet gebruikt, moet u bij elk HTML-artikel de bijbehorende CSS- en JS-bestanden insluiten.

In dit voorbeeld worden de bestanden 'css/style.css' en 'js/main.js' in elk artikel gedupliceerd, wat tot overhead leidt. Met Shared Content kunt u deze bestanden toevoegen aan één sharedContent-entiteit en vervolgens in elk artikel naar deze entiteit verwijzen.

Als u Shared Content gebruikt, worden gedeelde bestanden opgeslagen in één entiteit, waarnaar in meerdere artikelen kan worden verwezen.

Werken met dynamische gedeelde inhoud

Met de AEM Mobile-release 2017.2 (6 februari 2017) kunt u dynamische gedeelde inhoud bijwerken zonder dat u de artikelen die naar de gedeelde inhoud verwijzen hoeft bij te werken. In vorige versies moest u om de sharedContent-entiteit te kunnen gebruiken zowel de gedeelde inhoud bijwerken als de artikelen die naar die inhoud verwezen. App-gebruikers moesten vervolgens op de prompt “Bijwerken” tikken om de updates te verkrijgen. In deze versie kunt u de nieuwe dynamicSharedContent-entiteit gebruiken om gedeelde inhoud te uploaden. Wanneer u dynamische gedeelde inhoud bijwerkt en publiceert, worden de wijzigingen automatisch doorgevoerd in alle artikelen die naar de inhoud verwijzen. U hoeft de verwijzende artikelen niet meer bij te werken en gebruikers hoeven niet meer op de prompt “Bijwerken” te tikken.

Zowel de sharedContent- als de dynamicSharedContent-workflow wordt ondersteund. Deze sectie verwijst naar het gebruik van dynamische gedeelde inhoud. Als u in plaats daarvan de vorige workflow voor gedeelde inhoud wilt gebruiken, vervangt u waar nodig dynamicSharedContent door sharedContent.

 

Shared Content gebruiken

  1. Maak een artikelentiteit voor elk artikel.

  2. Upload de inhoud van het artikel (gecomprimeerd in combinatie met manifest.xml) naar de opnameservice. Zie HTML-artikelen maken voor AEM Mobile voor meer informatie.

  3. Maak de entiteit voor gedeelde inhoud. De hoofdtekst van de aanvraag moet de kenmerken van metagegevens voor standaardentiteiten bevatten. Opmerking: in de volgende voorbeelden is het veld 'sc_one' de naam van de dynamicSharedContent-entiteit.

    PUT /publication/<projectID>/dynamicSharedContent/sc_one
  4. Haal contentUrl op uit de entiteit die is gemaakt (deel van het antwoord).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/"
        }
    }
  5. Upload de gedeelde bronnen naar deze contentUrl.

    Voorbeelden:

    PUT /publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/css/style.css
    PUT /publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion1>/js/main.js
  6. Verzegel (doorvoeren) de inhoud van de dynamicSharedContent-entiteit.

    PUT /publication/<projectId>/dynamicSharedContent/sc_one;version=<entVersion>/contents
  7. Haal bijgewerkte contentUrl op uit de verzegelde entiteit (deel van het antwoord).

    {
        …
        "_links": {
            …
            "contentUrl": "/publication/<projectId>/dynamicSharedContent/sc_one/contents;contentVersion=<cVersion2>/"
        }
    }
  8. Upload in het artikel een symbolische koppeling die naar de gedeelde contentUrl verwijst.  Opmerking: in de volgende voorbeelden is het veld 'article_one' de naam van de entiteit voor de artikelen; het veld 'shared' is de naam van de map waarin de gedeelde inhoud staat. Haal eerst de nieuwste versie van de dynamicSharedContent-entiteit op met een GET-aanroep. Werk vervolgens de koppeling naar de gedeelde bron bij.

    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>/"}
  9. Stel in hetzelfde artikel aanvullende verwijzingen naar een andere entiteit voor gedeelde inhoud in.

    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>/"}

    Opmerking: de header Content-Type identificeert deze bron als symbolische koppeling, de naam van de bron ('article_one' in het voorbeeld) identificeert de bron van de symbolische koppeling en de inhoud van het geüploade middel identificeert het doel.

  10. Verzegel (doorvoeren) de inhoud van de verwijzende entiteit.

     

    PUT /publication/<projectId>/article/article_one;version=<entVersion>/contents

    Inhoudsmiddelen in article_one kunnen nu naar inhoud in de dynamicSharedContent-entiteit verwijzen door middel van de voorvoegsels “shared” (voor sc_one) en “fonts” (voor sc_two). De dynamicSharedContent bevindt zich één map hoger dan het HTML-artikel.

    In de HTML-inhoud van article_one wordt op de volgende wijze naar javascript en css verwezen:

    <script src="../shared/js/logic.js"></script>
    <link rel="stylesheet" type="text/css" href="../shared/css/style.css">

    Lettertypen kunnen op de volgende manier beschikbaar worden gesteld:

    @font-face {
      font-family: "myFirstFont";
      src: "url(../fonts/Exotic_Regular.woff");
    }
  11. Publiceer de dynamicSharedContent-entiteit voor niet-preflight-apps of activeer de preflight voor preflight-apps om de wijzigingen voor de dynamicSharedContent-entiteit door te geven aan alle verwijzende artikelen.

    PUT /job
    {
        "workflowType": "publish",
        "entity": {
            "/publication/dynamicSharedContent/sc_one;version=<entVersion>"
        }
    }

Bestaande gedeelde inhoud migreren naar dynamische gedeelde inhoud

De nieuwe mogelijkheden voor gedeelde inhoud zijn niet van invloed op bestaande workflows voor gedeelde inhoud. Als u dynamische gedeelde inhoud wilt benutten, moet u uw bestaande gedeelde inhoud wijzigen om de nieuwe dynamische workflow in te schakelen.

  1. Maak een nieuwe dynamicSharedContent-entiteit.

  2. Voeg alle middelen van de vorige sharedContent-entiteit toe aan de nieuwe dynamicSharedContent-entiteit en verzegel de inhoud van de entiteit.

  3. Werk de symbolische-koppelingsbestanden (symlink) in elk artikel bij zodat ze verwijzen naar de nieuwe dynamicSharedContent-entiteit in de verzegelde versie.

  4. Geef een voorvertoning weer (preflight) van de projectinhoud. De dynamische inhoud moet nu in artikelen beschikbaar zijn.

  5. De nieuwe mogelijkheden voor gedeelde inhoud zijn niet van invloed op bestaande workflows voor gedeelde inhoud. Als u dynamische gedeelde inhoud wilt benutten, moet u uw bestaande gedeelde inhoud wijzigen om de nieuwe dynamische workflow in te schakelen.

    Wanneer u gereed bent om de site te publiceren, publiceert u de dynamische gedeelde inhoud. Publiceer vervolgens de artikelen die naar de gedeelde inhoud verwijzen.

    Als u gedeelde inhoud wilt bijwerken, voegt u middelen toe aan, of wijzigt u middelen in de dynamische gedeelde inhoud en verzegelt u de entiteit. Geef een voorvertoning weer van artikelen die verwijzen naar de gedeelde inhoud en publiceer de dynamische gedeelde inhoud vervolgens. De wijzigingen zijn nu zichtbaar in de verwijzende artikelen.

Opmerking:

Het is op dit moment niet mogelijk om de publicatie van dynamische gedeelde inhoud ongedaan te maken. Zolang deze optie niet wordt ondersteund, kunt u als tijdelijke oplossing alle bestandsinhoud verwijderen uit de dynamische gedeelde inhoud en opnieuw publiceren. U kunt ook de symlink naar deze dynamische gedeelde inhoud verwijderen uit de verwijzende artikelen of dynamische banners.

Overwegingen voor Shared Content

Wanneer u gedeelde inhoud in uw artikelen gebruikt, moet de viewer de gehele entiteit voor gedeelde inhoud downloaden voordat het artikel kan worden weergegeven. U kunt meerdere entiteiten voor gedeelde inhoud maken in plaats van één grote entiteit die alle gedeelde inhoud bevat.

Het pad waar de inhoud beschikbaar is, is afhankelijk van het ontwerp van de symbolische koppeling, zoals aangegeven in stap 8 en 9. In stap 8 wordt naar sc_one verwezen via het pad 'shared'. In stap 9 wordt naar sc_two verwezen via het pad 'fonts'. De manier waarop gedeelde inhoud werkt, is vergelijkbaar met het gebruik van symbolische koppelingen in een Unix-besturingssysteem.

Gedeelde inhoud kan alleen worden beheerd via de On-Demand Services API. Momenteel bevat de portal voor on-demandservices geen gebruikersinterface om gedeelde inhoud te beheren.

De On-Demand Services API bevat voorbeelden voor sharedContent. Zie de map /sharedContent.

Dit werk is gelicentieerd onder de Creative Commons Naamsvermelding/Niet-commercieel/Gelijk delen 3.0 Unported-licentie  De voorwaarden van Creative Commons zijn niet van toepassing op Twitter™- en Facebook-berichten.

Juridische kennisgevingen   |   Online privacybeleid