Tillägg - registrering

AEM UI-tillägg är en specialiserad App Builder-app som baseras på React och använder gränssnittsramverket React Spectrum .

För att definiera var och hur AEM UI-tillägget ska visas krävs två konfigurationer i tilläggets App Builder-app: approutning och tilläggsregistrering.

Appvägar app-routes

Tilläggets App.js deklarerar Reaktionsroutern som innehåller en indexväg som registrerar tillägget i AEM-gränssnittet.

Indexflödet anropas när AEM-användargränssnittet läses in första gången och målet för den här vägen definierar hur tillägget visas i konsolen.

  • ./src/aem-ui-extension/web-src/src/components/App.js
import ExtensionRegistration from "./ExtensionRegistration"
...
function App(props) {
  return (
    <Router>
      <ErrorBoundary onError={onError} FallbackComponent={fallbackComponent}>
        <Routes>
          {/* The index route maps to the extension registration */}
          <Route index element={<ExtensionRegistration />} />
          ...
        </Routes>
      </ErrorBoundary>
    </Router>
  )
  ...
}

Tillägg - registrering

ExtensionRegistration.js måste läsas in omedelbart via tilläggets indexflöde och fungerar som registreringspunkt för tillägget.

Baserat på AEM UI-tilläggsmallen som valdes när App Builder-programtillägget ​ initierades stöds olika tilläggspunkter.

Inkludera tillägg villkorligt

AEM UI-tillägg kan utföra anpassad logik för att begränsa de AEM-miljöer som tillägget finns i. Den här kontrollen utförs före anropet register i komponenten ExtensionRegistration och returnerar omedelbart om tillägget inte ska visas.

Den här kontrollen har begränsad kontext:

  • Den AEM-värd som tillägget läses in på.
  • Den aktuella användarens AEM-åtkomsttoken.

De vanligaste kontrollerna för att läsa in ett tillägg är:

  • Använder AEM-värden (new URLSearchParams(window.location.search).get('repo')) för att avgöra om tillägget ska läsas in.

    • Visa bara tillägget i AEM-miljöer som ingår i ett visst program (som visas i exemplet nedan).
    • Visa bara tillägget i en viss AEM-miljö (AEM-värd).
  • Använder en Adobe I/O Runtime-åtgärd för att göra ett HTTP-anrop till AEM för att avgöra om den aktuella användaren ska se tillägget.

I exemplet nedan visas hur du begränsar tillägget till alla miljöer i programmet p12345.

  • ./src/aem-cf-console-admin-1/web-src/src/components/ExtensionRegistration.js
function ExtensionRegistration() {
  const PROGRAM_ID = 'p12345';

  // Get the current AEM Host (author-pXXX-eYYY.adobeaemcloud.com) the extension is loading on
  const aemHost = new URLSearchParams(window.location.search).get('repo');

  // Create a check to determine if the current AEM host matches the AEM program that uses this extension
  const aemHostRegex = new RegExp(`^author-${PROGRAM_ID}-e[\\d]+\\.adobeaemcloud\\.com$`)

  // Disable the extension if the Cloud Manager Program Id doesn't match the regex.
  if (!aemHostRegex.test(aemHost)) {
    return; // Skip extension registration if the environment is not in program p12345.
  }

  // Else, continue initializing the extension
  const init = async () => { .. };

  init().catch(console.error);
}
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69