Как добавить РСЯ в react native?

Для добавления РСЯ (расширенной совместимости с андроидом) в React Native, вам потребуется выполнить следующие шаги:

1. Установите РСЯ пакет:

Выполните команду npm install @react-native-community/netinfo для установки пакета РСЯ в ваш проект.

2. Связывание библиотеки с проектом:

В зависимости от версии React Native, которую вы используете, есть два способа связывания библиотеки РСЯ с проектом.

Для React Native версии 0.59 и ниже:

a. Выполните команду react-native link @react-native-community/netinfo для автоматического связывания библиотеки с проектом.

б. Для IOS добавьте ссылку на библиотеку в ваш проект, открыв файл ios/[название вашего проекта].xcodeproj в Xcode, щелкнув правой кнопкой мыши и выбрав Add Files to [название вашего проекта], перейдите к папке node_modules/@react-native-community/netinfo/ios и выберите файл RNCNetInfo.xcodeproj. Затем выберите ваш проект и перейдите на вкладку Build Phases. Разверните раздел Link Binary With Libraries и добавьте libRNCNetInfo.a.

в. Для Android откройте файл android/app/build.gradle и добавьте следующую строку в раздел dependencies: implementation project(':react-native-netinfo'). Затем откройте файл android/settings.gradle и добавьте следующую строку: include ':react-native-netinfo'. Наконец, откройте файл android/app/src/main/java/com/[название вашего проекта]/MainApplication.java и добавьте следующие импорты:

          import com.reactnativecommunity.netinfo.NetInfoPackage;

а также добавьте пакет в раздел getPackages(), например:

          packages.add(new NetInfoPackage());

Для React Native версии 0.60 и выше:

a. Если вы используете автоматическую связку, то после установки пакета РСЯ, он будет автоматически связан с проектом.

б. Если вы используете подход с автоматическим связыванием, то убедитесь, что ваш файл android/app/build.gradle содержит следующую строку в разделе dependencies: implementation '@react-native-community/netinfo'.

в. Для IOS вам необходимо выполнить шаги, описанные выше для версии 0.59 и ниже.

3. Использование:

После связывания пакета с вашим проектом, вы можете использовать его в вашем React Native коде. Вот пример использования пакета РСЯ:

   import NetInfo from "@react-native-community/netinfo";
   
   NetInfo.fetch().then(state => {
     console.log("Connection type", state.type);
     console.log("Is connected?", state.isConnected);
   });
   
   const unsubscribe = NetInfo.addEventListener(state => {
     console.log("Connection type", state.type);
     console.log("Is connected?", state.isConnected);
   });

Вы можете получать информацию о текущем состоянии сети с помощью NetInfo.fetch(), а также подписываться на изменения состояния сети с помощью NetInfo.addEventListener().