Gestori di app in dotazione

NOTA

Adobe consiglia di utilizzare l'editor SPA per i progetti che richiedono il rendering lato client basato sul framework dell'applicazione a pagina singola (ad es. React). Per saperne di più.

Consultate le seguenti linee guida per lo sviluppo di gestori di sincronizzazione dei contenuti:

  • I gestori devono implementare com.day.cq.contentsync.handler.ContentUpdateHandler (direttamente o estendendo una classe che lo supporta)
  • I gestori possono estendere com.adobe.cq.mobile.platform.impl.contentsync.handler.AbstractSlingResourceUpdateHandler
  • Il gestore deve segnalare true solo se ha aggiornato la cache ContentSync. La segnalazione errata di true consente AEM creare un aggiornamento.
  • Il gestore deve aggiornare la cache solo se il contenuto è effettivamente cambiato. Non scrivere nella cache se non è necessario un bianco ed evitare una creazione di aggiornamenti non necessaria.

Gestori esterni

Di seguito sono elencati i gestori di app forniti con il prodotto:

​mobileapppagesRendering delle pagine dell'app.

  • type - String - mobileapppages

  • percorso - Stringa - percorso di una pagina

  • extension - String - Extension da utilizzare nella richiesta. Per le pagine questo è quasi sempre html, ma altri sono ancora possibili.

  • selettore - Stringa - Selettori opzionali separati da punto. Esempi comuni sono touch per il rendering delle versioni mobili di una pagina.

  • deep - Boolean - Proprietà booleana opzionale che determina se includere anche le pagine figlie. Il valore predefinito è true.

  • includeImages - Boolean - Proprietà booleana opzionale che determina se le immagini devono essere incluse. Il valore predefinito è true.

    • Per impostazione predefinita, sono considerati per l’inclusione solo i componenti immagine con un tipo di risorsa di base/componenti/immagine.
  • includeVideo - Booleano - Proprietà booleana opzionale che determina se i video devono essere inclusi. Il valore predefinito è true.

  • includeModifiedPagesOnly - Boolean - Se false o omesso, esegue il rendering di tutte le pagine e controlla gli aggiornamenti nel rendering. Se true, base differisce in base alle modifiche apportate a una pagina lastModified.

  • + riscrittura (nodo)
    - relativeParentPath - String - il percorso in cui scrivere tutti gli altri percorsi relativi a.

NOTA

Il tipo di risorsa dei componenti immagine e video interessati da questo gestore viene impostato configurando le proprietà di com.adobe.cq.mobile.platform.impl.contentsync.handler.Servizio OSGi MobilePagesUpdateHandler.

​mobilepageassetsRaccoglie le risorse della pagina dell'app.

​mobilecontentlistElenca il contenuto del file ZIP ContentSync. Questo viene utilizzato dal client lato js sul dispositivo per eseguire la copia del file iniziale richiesta per AEM app.

Questo gestore deve essere aggiunto a qualsiasi configurazione ContentSync AEM App.

  • type - String - mobilecontentlist
  • path - String - keep empty, must be present as a valid handler, ma il percorso viene ricavato come cache ContentSync corrente. Questo valore viene ignorato.
  • targetRootDirectory -​String - il prefisso da aggiungere ai percorsi come radice di destinazione per l'aggiornamento del contenuto per questo gestore.
  • order - Long -​Order for ContentSync per eseguire questo gestore. Questo numero deve essere impostato su un valore superiore a tutti gli altri gestori, ad esempio 100. Deve essere eseguito dopo i gestori di contenuti tradizionali.
{
  "files": [
    "config.xml",
    "res/screens/ios/screen-ipad-portrait-2x.png",
    "res/screens/ios/screen-ipad-landscape.png",
    "res/screens/ios/screen-iphone-portrait-2x.png",
    "res/screens/ios/screen-iphone-landscape.png",
    "res/screens/ios/screen-iphone-portrait.png",
    "apps/weretail-app/components/splash-page/clientlibs.css",
    ...
    "pge-content-packages.json"
  ],
  "count": 382,
  "lastModified": 1422902754733
}

​mobilecontentpackageslistElenca il pacchetto di contenuto AEM in una determinata app e il serverURL a cui effettuare le richieste di aggiornamento. Viene utilizzato per richiedere gli aggiornamenti dei contenuti tramite il lato client sul dispositivo

Il gestore deve essere utilizzato nella configurazione ContentSync della shell AEM app (nodo con page-type=app-instance)

  • type - String - mobilecontentpackageslist
  • path-String - Percorso di una shell app (nodo con page-type=app-instance).
  • targetRootDirectory - String - il prefisso da aggiungere ai percorsi come radice di destinazione per l'aggiornamento del contenuto per questo gestore.
  • order - Long -​Order for ContentSync per eseguire questo gestore. Questo numero deve essere impostato su un valore superiore a tutti gli altri gestori, ad esempio 100. Deve essere eseguito dopo i gestori di contenuti tradizionali.
NOTA

Il seguente blocco di codice non è un'implementazione esatta e deve essere utilizzato come esempio di riferimento:

{
  "content": [
    {
      "name": "en",
      "title": "We Retail Mobile App - English",
      "type": "CONTENT",
      "path": "/content/phonegap/weretail-outdoors/en",
      "updatePath": "/content/phonegap/weretail/en/jcr:content/pge-app/app-config"
    },
    {
      "name": "shell",
      "title": "We Retail Mobile App",
      "type": "INSTANCE",
      "path": "/content/phonegap/weretail-outdoors/shell",
      "updatePath": "/content/phonegap/weretail/shell/jcr:content/pge-app/app-config"
    }
  ],
  "serverURL": "http://localhost:4503/"
}

​widgetconfigInclude un file config.xml aggiornato che unisce tutte le modifiche effettuate tramite il Centro comandi con un file config.xml fornito. Se questo gestore non è incluso, i dettagli dell'app che vengono modificati tramite l'interfaccia di amministrazione non saranno inclusi nella cache.

Questo handler deve essere utilizzato in una configurazione AEM App Shell ContentSync (nodo con page-type=[app-instance]).

  • tipo - String - widgetconfig
  • path-String - Percorso di qualsiasi nodo secondario della shell dell'app (nodo con page-type=[app-instance]).
  • targetRootDirectory - String - il prefisso da aggiungere ai percorsi come radice di destinazione per l'aggiornamento del contenuto per questo gestore.
  • targetIconDirectory - String - la directory in cui inserire le icone per l'app

​mobileADBMobileConfigJSONInclude il file ADBMobileConfig.JSON se il servizio cloud AMS è stato configurato.

Questo viene utilizzato in fase di compilazione per configurare il plugin AMS per il supporto analitico.

Il gestore deve essere utilizzato nella configurazione ContentSync della shell AEM app (nodo con page-type=app-instance)

  • type - String - mobileADBMobileConfigJSON
  • percorso - Stringa - Percorso di una shell app (nodo con page-type=app-instance o una RT che estende /libs/mobileapps/core/components/instance)
  • targetRootDirectory - String - il prefisso da aggiungere ai percorsi come radice di destinazione per l'aggiornamento del contenuto per questo gestore

​notifiche sconfigExtracts configurazioni di notifiche richieste sul dispositivo. Le proprietà vengono estratte dalla rispettiva configurazione del servizio cloud del servizio push associata all'app.

Le proprietà non AEM nel nodo jcr:content del servizio cloud vengono estratte e aggiunte al file page-notifications-config.json JSON da includere nel file www root dell'app del contenuto.

AEM proprietà sono quelle con spazio dei nomi con "cq", "sling" o "jcr". È possibile escludere altre proprietà utilizzando la proprietà "excludeProperties" nel nodo di configurazione della sincronizzazione dei contenuti.

  • type - String - notificationsconfig
  • excludeProperties - String[] - proprietà da escludere

​contentsyncconfigcontentRaccoglie il contenuto da una configurazione ContentSync esistente.

  • type - String - contentsyncconfigcontent

  • path - String - Percorso di uno dei seguenti:

    • un'altra configurazione ContentSync
    • a un pacchetto di contenuti (verrà utilizzata la proprietà phonegap-exportTemplate per trovare la configurazione ContentSync)
    • a una risorsa mobile (i contenuti dell’app si trovano in tale risorsa e, se i pacchetti di contenuto dispongono di una proprietà page-includeInBuild che è true, il phonegap-exportTemplate verrà utilizzato per trovare la configurazione ContentSync)
  • autoCreateFirstUpdateBeforeImport - Boolean - se true, creare un ​aggiornamento iniziale nella configurazione di destinazione prima dell'importazione, se una volta non esiste già

  • autoFillBeforeImport - Boolean - se true, aggiorna/compila la configurazione di destinazione prima di importare

  • configSuffix - String - una stringa da aggiungere al percorso indicato nella proprietà "phonegap-exportTemplate" di app-content. Questo può essere utilizzato per distinguere diversi modelli di esportazione. Ad esempio, questa proprietà può essere impostata su "-dev" per indicare che è necessario utilizzare "/…/…/…/appconfig-dev" (anziché "/…/./…/appconfig").

app- assetsInclude tutte le risorse associate a un'istanza dell'app. Questo handler includerà tutte le risorse trovate nel percorso specificato insieme alle risorse a cui fa riferimento la proprietà appAssetPath di un'istanza dell'app.

  • type - String - app-assets

  • percorso-Stringa - percorso di una posizione in un'istanza di app in cui sono memorizzate le risorse dell'app

​mobileappoffersÈ stato introdotto un nuovo gestore di sincronizzazione dei contenuti per il caso d’uso Personalizzazione per il rendering del contenuto di destinazione. Il gestore 'mobileappoffers' è in grado di eseguire il rendering delle offerte di destinazione associate create dall'autore del contenuto. Il gestore mobileappoffers estende il gestore di aggiornamenti delle pagine astratte, pertanto molte delle proprietà sono simili. I dettagli del gestore mobileappoffers hanno le seguenti proprietà.

Il gestore mobileappsoffers estende il gestore mobileappspages e aggiunge le seguenti proprietà:

  • locationRoot - String - specifica la posizione dell'applicazione mobile
  • includePageTypes - String - default per supportare cq/personalization/components/teaserpage e cq/personalization/components/offerproxy
  • selector - String - deve essere impostato su tandt
  • path - String - il percorso del marchio della campagna

​mobileappconfigIl gestore di sincronizzazione del contenuto mobileappconfig fornisce un modo per inserire i dati JSON in MobileAppsConfig.json. Per registrare una classe di provider, gli sviluppatori aggiungeranno la classe MobileAppsInfoProvider all'elenco dei provider. Il gestore eseguirà un'iterazione sull'elenco di MobileAppsInfoProviders e consentirà al provider di inserire i dati nel file json risultante. L'elenco delle proprietà supportate da questo gestore è:

  • path-String - il percorso di un nodo di istanza dell'app con pge-type=app-instance o un RT che si estende /libs/mobileapps/core/components/instance
  • provider - Stringa [] - elenco di MobileAppsInfoProviders completi
  • targetRootDirectory - String - la directory in cui scrivere il file MobileAppsConfig.json.
  • fileName - String - nome facoltativo del file in cui scrivere il file JSON, per impostazione predefinita è MobileAppsConfig.json

È possibile che più gestori mobileappconfig siano configurati ciascuno con un set univoco di provider che scrivono in file JSON diversi.

Verifica dei gestori di sincronizzazione dei contenuti

Passaggi per il controllo della cache IntegrityClear

  • Cancella cache
  • Eseguire il gestore (cache aggiornata)
  • Eseguire nuovamente il gestore (la cache non deve essere aggiornata)

Passaggi per il debug

  • Eseguire la configurazione
  • Esportare la configurazione o la revisione sul dispositivo
  • Se il rendering non riesce, controllare se mancano stili/risorse/libs o controllare se sono presenti percorsi non validi per stili/risorse/libs

​LoggingAbilita la registrazione di debug di ContentSync tramite le configurazioni di logger OSGI sul pacchetto com.day.cq.contentsync Questo consente di tenere traccia dei gestori eseguiti e se hanno aggiornato la cache e segnalato l'aggiornamento della cache.

Risorse aggiuntive

Per informazioni su ruoli e responsabilità di un amministratore e sviluppatore, consulta le risorse seguenti:

NOTA

Per iniziare a sviluppare app AEM Mobile, fai clic su qui.

In questa pagina