Automatische Verknüpfung von Native Modules
Architekturbewertung erforderlich: Diese Dokumentation wurde zur Unterstützung der Entwicklung gegen die "alte" oder "Legacy"-Architektur von React Native geschrieben. Sie ist möglicherweise nicht direkt auf die Entwicklung mit der neuen Architektur anwendbar und muss überprüft und möglicherweise aktualisiert werden. Informationen zu React Native-Architekturen in React Native Windows finden Sie unter Neu vs. Alt Architektur.
Die neuesten Informationen zur nativen Entwicklung unter Windows finden Sie unter Native Plattform: Übersicht.
Autolinking ist ein Mechanismus, der es Ihrem React Native-App-Projekt ermöglicht, native Module und View Manager von React Native-Bibliotheken zu erkennen und zu verwenden.
Dieses Dokument behandelt das Autolinking für die Windows-Plattform. Es ist eine Erweiterung der React Native CLI Autolinking Doku.
Fügen Sie eine Bibliothek mit Ihrem bevorzugten Paketmanager hinzu und führen Sie den Build aus
yarn add react-native-webview
npx react-native run-windows
Das ist alles. Keine weiteren Bearbeitungen von nativen Dateien mehr, um nativen Code zu verwenden.
Wie funktioniert es
Aus der React Native CLI Autolinking Doku
Jede Plattform definiert ihre eigene
platformsKonfiguration. Sie weist die CLI an, wie Informationen über native Abhängigkeiten gefunden werden. Diese Informationen werden über denconfigBefehl im JSON-Format bereitgestellt. Diese wird dann von den Skripten verwendet, die von den Build-Tools der Plattform ausgeführt werden. Jedes Skript wendet die Logik an, um plattformspezifische native Abhängigkeiten zu verknüpfen.
Die von config bereitgestellten Informationen werden im React Native Config Schema beschrieben.
Autolinking-Prozess
Autolinking wird automatisch als Teil des run-windows Befehls durchgeführt.
- Zur Build-Zeit wird zuerst Autolinking durchgeführt, bevor
msbuild.exeaufgerufen und der Build tatsächlich gestartet wird. Es verwendet die vonconfigbereitgestellten Informationen, um bestimmte native Dateien zu generieren und zu ändern, die von Ihrem App-Projekt verwendet werden.Die Dateien
AutolinkedNativeModules.g.propsundAutolinkedNativeModules.g.targetsenthalten die notwendigen Referenzen zu den Abhängigkeitsprojekten, die erstellt werden müssen.Ihre App-Lösungsdatei kann ebenfalls geändert werden, um sicherzustellen, dass die Abhängigkeitsprojekte erstellt werden.
Die Dateien
AutolinkedNativeModules.g.(cpp|cs)enthalten eine MethodeRegisterAutolinkedNativeModulePackages, die alle angegebenenIReactPackageProviders aus den Abhängigkeiten registriert.
- Zur Build-Zeit, während
msbuild.exeläuft, aber bevor Ihr App-Projekt kompiliert wird, überprüft eine Prüfung, ob die autoverknüpften Dateien auf dem neuesten Stand sind, und warnt Sie, falls dies nicht der Fall ist.Wenn Sie
run-windowsverwenden, sollte diese Prüfung immer erfolgreich sein. Wenn Sie jedoch die generierten Dateien manuell bearbeitet haben oder Ihre npm-Abhängigkeiten geändert haben und manuell mit Visual Studio bauen, kann die Prüfung fehlschlagen. Siehe manuelles Ausführen des Autolinkings. - Zur Laufzeit, wenn Ihre App startet, ruft sie
RegisterAutolinkedNativeModulePackagesauf und registriert die nativen Abhängigkeiten bei React Native, wodurch sie für den JS-Code verfügbar gemacht werden.
Alternativen
Manuelles Ausführen des Autolinkings
Wenn Sie den Autolinking-Prozess außerhalb des Builds ausführen möchten, können Sie jederzeit manuell den Befehl autolink-windows ausführen.
Autolinking überspringen
Wenn Sie den Autolinking-Prozess während des Befehls run-windows überspringen möchten, können Sie die Option --no-autolink übergeben.
npx react-native run-windows --no-autolink