Tillägg - registrering

Gränssnittstilläggen för AEM är specialiserade App Builder-appar som bygger på React och använder gränssnittsramverket React Spectrum.

För att definiera var och hur AEM UI-tillägg 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.

Indexflödet anropas när AEM-gränssnittet läses in 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å den AEM UI-tilläggsmallen som valdes när App Builder-programtilläggetinitierades 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änd AEM värd (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 (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