> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Konfigurieren von Vantage Mobile Input

> Konfigurieren Sie Upload-Links für Vantage Mobile Input: Passen Sie Dokumenttypen, Seiten, Redirect URI, Sprache, Design und andere Parameter für den Erfassungsprozess an.

export const VantageRegion = ({children}) => {
  const STORAGE_KEY = "abbyy.vantage.region";
  const REGIONS = [{
    code: "eu",
    label: "Europe"
  }, {
    code: "us",
    label: "North America"
  }, {
    code: "au",
    label: "Australia / Asia-Pacific"
  }];
  const [region, setRegion] = useState("eu");
  const [open, setOpen] = useState(false);
  const containerRef = useRef(null);
  const dropdownRef = useRef(null);
  function safeGetSavedRegion() {
    try {
      const saved = typeof window !== "undefined" ? window.localStorage.getItem(STORAGE_KEY) : null;
      const valid = new Set(REGIONS.map(r => r.code));
      return saved && valid.has(saved) ? saved : "eu";
    } catch {
      return "eu";
    }
  }
  function safeSetSavedRegion(code) {
    try {
      if (typeof window !== "undefined") {
        window.localStorage.setItem(STORAGE_KEY, code);
      }
    } catch {}
  }
  function dispatchRegionChanged(code) {
    try {
      if (typeof window !== "undefined") {
        window.dispatchEvent(new CustomEvent("abbyy:region-changed", {
          detail: {
            code
          }
        }));
      }
    } catch {}
  }
  function replaceRegionInString(text, currentRegion) {
    if (typeof text !== "string") return text;
    const hostRegex = /https:\/\/vantage-(eu|us|au)\.abbyy\.com/gi;
    const tokenRegex = /https:\/\/vantage-\[region\]\.abbyy\.com/gi;
    const bareHostRegex = /vantage-(eu|us|au)\.abbyy\.com/gi;
    const bareTokenRegex = /vantage-\[region\]\.abbyy\.com/gi;
    return text.replace(hostRegex, `https://vantage-${currentRegion}.abbyy.com`).replace(tokenRegex, `https://vantage-${currentRegion}.abbyy.com`).replace(bareHostRegex, `vantage-${currentRegion}.abbyy.com`).replace(bareTokenRegex, `vantage-${currentRegion}.abbyy.com`);
  }
  useEffect(() => {
    setRegion(safeGetSavedRegion());
  }, []);
  useEffect(() => {
    const root = containerRef.current;
    if (!root) return;
    const anchors = root.querySelectorAll("a[href]");
    anchors.forEach(a => {
      const href = a.getAttribute("href");
      if (href) {
        const next = replaceRegionInString(href, region);
        if (next !== href) {
          a.setAttribute("href", next);
        }
      }
    });
    const walker = typeof document !== "undefined" ? document.createTreeWalker(root, NodeFilter.SHOW_TEXT, null) : null;
    if (walker) {
      const toUpdate = [];
      let node = walker.nextNode();
      while (node) {
        const updated = replaceRegionInString(node.nodeValue, region);
        if (updated !== node.nodeValue) {
          toUpdate.push([node, updated]);
        }
        node = walker.nextNode();
      }
      toUpdate.forEach(([textNode, value]) => {
        textNode.nodeValue = value;
      });
    }
  }, [region, children]);
  useEffect(() => {
    const root = containerRef.current;
    if (!root) return;
    const anchors = root.querySelectorAll("a[href]");
    anchors.forEach(a => {
      a.style.fontWeight = "600";
      a.style.textDecoration = "underline";
      a.style.textUnderlineOffset = "2px";
    });
  }, [region, children]);
  useEffect(() => {
    const onRegionChanged = evt => {
      const code = evt && evt.detail && evt.detail.code;
      if (!code || code === region) return;
      setRegion(code);
    };
    if (typeof window !== "undefined") {
      window.addEventListener("abbyy:region-changed", onRegionChanged);
    }
    return () => {
      if (typeof window !== "undefined") {
        window.removeEventListener("abbyy:region-changed", onRegionChanged);
      }
    };
  }, [region]);
  useEffect(() => {
    const onClickAway = e => {
      if (!dropdownRef.current) return;
      if (!dropdownRef.current.contains(e.target)) {
        setOpen(false);
      }
    };
    document.addEventListener("click", onClickAway, true);
    return () => document.removeEventListener("click", onClickAway, true);
  }, []);
  const onSelect = code => {
    setRegion(code);
    safeSetSavedRegion(code);
    dispatchRegionChanged(code);
    setOpen(false);
  };
  const current = REGIONS.find(r => r.code === region) || REGIONS[0];
  return <div className="not-prose">
      <div className="mb-4 inline-flex items-center gap-2" ref={dropdownRef}>
        <span className="text-sm text-zinc-950/80 dark:text-white/80">Tenant Region:</span>
        <div className="relative">
          <button type="button" aria-haspopup="listbox" aria-expanded={open ? "true" : "false"} onClick={() => setOpen(v => !v)} className="h-8 px-3 rounded-md bg-zinc-900/5 dark:bg-white/5 border border-zinc-950/20 dark:border-white/20 text-sm inline-flex items-center gap-2">
            <span className="text-zinc-950 dark:text-white">{current.label}</span>
            <svg width="8" height="24" viewBox="0 -9 3 24" className="transition-transform text-gray-400 overflow-visible dark:text-gray-600 ml-auto" style={{
    transform: open ? "rotate(270deg)" : "rotate(90deg)"
  }}>
              <path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round"></path>
            </svg>
          </button>
          {open ? <div role="listbox" className="absolute z-50 left-full top-0 ml-2 w-56 rounded-xl border border-zinc-950/20 dark:border-white/20 bg-white dark:bg-zinc-900 shadow-lg p-2">
              {REGIONS.map(r => {
    const selected = r.code === region;
    return <button key={r.code} type="button" role="option" aria-selected={selected ? "true" : "false"} onClick={() => onSelect(r.code)} className={"w-full flex items-center justify-between px-3 py-2 rounded-lg text-sm hover:bg-zinc-950/5 dark:hover:bg-white/10 text-zinc-950 dark:text-white" + (selected ? " font-medium" : "")}>
                    <span style={selected ? {
      color: "#ff2038"
    } : undefined}>{r.label}</span>
                    <span className={selected ? "ml-3" : "ml-3 invisible"} style={selected ? {
      color: "#ff2038"
    } : undefined}>✓</span>
                  </button>;
  })}
            </div> : null}
        </div>
      </div>
      <div ref={containerRef} className="prose dark:prose-invert max-w-none">{children}</div>
    </div>;
};

Sie können die Funktion für mobilen Upload mit den folgenden zusätzlichen Parametern konfigurieren:

* [Parameter md](#the-md-parameter) legt die Anzahl und Namen der Dokumente sowie die Seiten für jedes Dokument fest, die in einem Vorgang erfasst werden sollen.
* [Parameter dt](#the-dt-parameter) passt den mobilen Upload so an, dass ein einzelner Dokumenttyp erfasst wird.
* [Parameter redirect\_uri](#the-redirect-uri-parameter) definiert den Webseitenlink, der geöffnet wird, sobald der mobile Upload abgeschlossen ist.
* [Parameter ma](#the-ma-parameter) ermöglicht die Verwendung von Micro Application in On-Premises-Umgebungen."

<div id="the-md-parameter">
  ## Der md-Parameter
</div>

Sie können die Struktur der Dokumente mit der Anzahl, den Typen und den Namen der Dokumente, die in einem Vorgang verarbeitet werden sollen, über den Parameter `md` festlegen. Vantage Mobile Input führt die Benutzer dabei an, die angegebenen Dokumente für die weitere Verarbeitung korrekt zu erfassen.

Standardmäßig ist der Parameter `md` im mobilen Upload-Link mit einem Wert von entweder 0 oder 1 vorhanden, abhängig vom ausgewählten Skill. Sie können einen der folgenden Werte angeben:

| Wert                                                                       | Beschreibung                                                                                                                                        |
| :------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |
| `0`                                                                        | Erfasst ein Dokument mit beliebiger Seitenanzahl.                                                                                                   |
| `1`                                                                        | Erfasst eine beliebige Anzahl von Dokumenten mit beliebiger Seitenanzahl.                                                                           |
| [Encoded URL to JSON file](/de/vantage/developer/mobile-upload/json-input) | Erfasst eine festgelegte Anzahl von Dokumenten mit benutzerdefinierten Namen sowie definierter Anzahl und definierten Namen der Seiten je Dokument. |
| [Encoded JSON file](/de/vantage/developer/mobile-upload/json-input)        | Erfasst eine festgelegte Anzahl von Dokumenten mit benutzerdefinierten Namen sowie definierter Anzahl und definierten Namen der Seiten je Dokument. |

<Info>
  Die **JSON-Datei** für den Parameter `md` ist nur für den mobilen Upload aus Micro Application verfügbar.
</Info>

Beispiel für die Verwendung der codierten URL zu einer JSON-Datei für den Parameter `md`:

<VantageRegion>
  ```
  https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&md=https%3A%2F%2Fdomain.tld%2Fstructure.json&token=<token>&v=<2.4>
  ```
</VantageRegion>

Beispiel für die Verwendung der kodierten JSON-Datei für den Parameter `md`:

<VantageRegion>
  ```
  https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&md=<encoded_json_structure>&token=<token>&v=<2.4>
  ```
</VantageRegion>

<Info>
  Wenn der [dt-Parameter](#the-dt-parameter) im mobilen Upload-Link verwendet wird, wird der Wert des `md`-Parameters ignoriert.
</Info>

<div id="the-dt-parameter">
  ## Der dt-Parameter
</div>

Um den mobilen Upload so anzupassen, dass nur ein einzelner Dokumenttyp erfasst wird, verwenden Sie den `dt`-Parameter:

1. Fügen Sie den `dt`-Parameter zum mobilen Upload-Link hinzu.
2. Geben Sie einen der folgenden Werte an:

| Wert       | Beschreibung                                                         |
| :--------- | :------------------------------------------------------------------- |
| `idcard`   | Erfasst beide Seiten (Vorder- und Rückseite) eines Ausweisdokuments. |
| `passport` | Erfasst die erste Seite eines Reisepasses.                           |
| `document` | Erfasst jedes andere Dokument.                                       |

<Info>
  Der **dt**-Parameter ist optional und hat keinen Standardwert.
</Info>

Die Verwendung des **dt**-Parameters passt die Kamera in der Micro-App so an, dass Ausweisdokumente automatisch erfasst werden.

Beispiel für die Verwendung des `dt`-Parameters zum Erfassen von Personalausweisen:

<VantageRegion>
  ```
  https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>&dt=idcard
  ```
</VantageRegion>

Beispiel für die Verwendung des `dt`-Parameters zum Erfassen einer Reisepassseite:

<VantageRegion>
  ```
  https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>&dt=passport
  ```
</VantageRegion>

<Warning>
  Wenn der **dt**-Parameter im mobilen Upload-Link verwendet wird, kann unabhängig vom ausgewählten Skill pro Vorgang nur ein Dokument hochgeladen werden.
</Warning>

<div id="the-redirect_uri-parameter">
  ## Der redirect\_uri-Parameter
</div>

Sie können einen Weblink anpassen, der geöffnet wird, sobald der mobile Upload abgeschlossen ist und die Verarbeitung des Vorgangs gestartet wurde. Auf diese Weise können Sie den Workflow für die Benutzer nach Abschluss des mobilen Uploads steuern. Fügen Sie dazu den `redirect_uri`-Parameter zum mobilen Upload-Link hinzu.

Beispiel für die Verwendung des `redirect_uri`-Parameters:

<VantageRegion>
  ```
  https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>&redirect_uri=https%3A%2F%2Fyourwebsite.com
  ```
</VantageRegion>

<Warning>
  Wenn Sie den `redirect_uri`-Parameter verwenden, stellen Sie sicher, dass Sie die Basis-URL (zum Beispiel `https://www.example.com`) der zu öffnenden Website in den **Allowed redirect URLs** des verwendeten Public API-Client hinzufügen. Weitere Informationen finden Sie unter [Configuring a Public API Client](/de/vantage/documentation/tenant-admin/tenant-management/configure-client#configuring-a-public-api-client).
</Warning>

<div id="the-ma-parameter">
  ## Der Parameter ma
</div>

Standardmäßig ist der mobile Upload in On-Premises-Umgebungen nur über einen Webbrowser möglich. Um die Verwendung von Micro Applications in On-Premises-Umgebungen zu aktivieren, verwenden Sie den Parameter `ma`:

1. Fügen Sie den Parameter `ma` zum mobilen Upload-Link hinzu.
2. Geben Sie eine der ABBYY Vantage Cloud-Umgebungen an.

In diesem Fall wird die mobile Eingabe an eine der ABBYY Vantage Cloud-Umgebungen weitergeleitet, um auf dem mobilen Gerät des Benutzers eine Micro Application zu starten. Alle Dokumente werden direkt in die On-Premises-Installation von ABBYY Vantage hochgeladen.

Beispiele für die Verwendung des Parameters `ma`:

<VantageRegion>
  ```
  https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>&ma=<https%3A%2F%2Fvantage-eu.abbyy.com>
  ```
</VantageRegion>

(in Westeuropa),

<VantageRegion>
  ```
  https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>&ma=<https%3A%2F%2Fvantage-us.abbyy.com>
  ```
</VantageRegion>

(in Nordamerika),

<VantageRegion>
  ```
  https://vantage-us.abbyy.com/mobile?baseUrl=<base URL>&transactionId=<transaction-id>&token=<token>&v=<2.4>&ma=<https%3A%2F%2Fvantage-au.abbyy.com>
  ```
</VantageRegion>

(in Australien).
