Show Menu
ARGOMENTI×

Gestori di app in dotazione

Adobe consiglia di utilizzare SPA Editor 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 non corretta di AEM consente di 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:
mobileapppages Rendering delle pagine dell'app.
  • type - String - mobileapppages
  • percorso - Stringa - percorso di una pagina
  • extension - String - Estensione 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. The default value is true.
  • includeImages - Boolean - Proprietà booleana opzionale che determina se le immagini devono essere incluse. The default value is 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. The default value is 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.
Il tipo di risorsa dei componenti immagine e video interessati da questo gestore viene impostato configurando le proprietà del gestore com.adobe.cq.mobile.platform.impl.contentsync.handler . Servizio OSGi MobilePagesUpdateHandler.
mobilepageassets Raccoglie le risorse della pagina dell'app.
mobilecontentlist Elenca il contenuto dello zip ContentSync. Questo viene utilizzato dal client side js sul dispositivo per eseguire la copia iniziale del file richiesta per le app AEM.
Questo handler deve essere aggiunto a qualsiasi configurazione ContentSync delle app AEM.
  • 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 - 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
}

mobilecontentpackageslist Elenca 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 delle app AEM (nodo con page-type=app-instance)
  • type - String - mobilecontentpackageslist
  • percorso - Stringa - 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.
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/"
}

widgetconfig Include 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= # ).
  • type - String - widgetconfig
  • percorso - Stringa - Percorso di qualsiasi nodo figlio della shell dell'app (nodo con page-type= # ).
  • 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
mobileADBMobileConfigJSON Include 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 delle app AEM (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 sconfig Estragga le configurazioni delle notifiche richieste sul dispositivo. Le proprietà vengono estratte dalla 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 JSON page-notifications-config.json per essere incluse nel file www root dell'app del contenuto.
Le proprietà AEM sono quelle con spazi 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
contentsyncconfigcontent Raccoglie 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 nella 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, crea 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 "/../../../appconfig-dev" deve essere utilizzata (al contrario di "/../../../appconfig" ).
app-assets Include 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 di app.
  • type - String - app-assets
  • percorso - Stringa - percorso di un percorso in un'istanza di app in cui sono memorizzate le risorse dell'app
mobileappoffer È 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
mobileappconfig Il 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 si ripeterà sull'elenco di MobileAppsInfoProviders e consentirà al provider di inserire i dati nel file json risultante. L'elenco delle proprietà supportate da questo gestore è:
  • percorso - Stringa - il percorso di un nodo di istanza dell'app con pge-type=app-instance o un RT che 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 configurare più gestori mobileappconfig ciascuno con un set univoco di provider che scrivono in file JSON diversi.

Test dei gestori di sincronizzazione dei contenuti

Passaggi per il controllo dell'integrità Cancella cache
  • 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
Registrazione Abilita registrazione debug ContentSync tramite le configurazioni OSGI logger 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.

Additional Resources

Per informazioni su ruoli e responsabilità di un amministratore e sviluppatore, consulta le risorse seguenti:
Per iniziare a utilizzare lo sviluppo di app AEM Mobile, fai clic qui .