Как надежно определить состояние сети с помощью React Native / Expo CLI - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь определить состояние подключений в приложении, чтобы включить автономное воспроизведение. В настоящее время я вызываю функцию CheckConnectivity, используя Network from Expo, но, похоже, она возвращает значение true, даже когда телефон находится в режиме полета. Если есть какой-либо способ проверить работоспособность приложения в автономном режиме перед сборкой в ​​Expo, это было бы чрезвычайно полезно для меня, а также мне пришлось ждать между сборками для тестирования, и это очень много времени.

    const CheckConnectivity = async () => {
        //Check if the internet is connected - just do a get request to pwt if it fails wifi is off
        let networkStatus = await Network.getNetworkStateAsync();
        if(networkStatus.isConnected)
        {
            await dispatch(courseActions.setWiFiStatus( true ));
            console.log("online...");

        }
        else 
        {
            await dispatch(courseActions.setWiFiStatus( false ));
            console.log("ofline...");
            //Route to offline screen
        }
    };

1 Ответ

0 голосов
/ 03 апреля 2020

NetInfo будет модулем для этого. Здесь ссылка .

Получить информацию, выполнив:

import NetInfo from "@react-native-community/netinfo";

NetInfo.fetch().then(info => console.log(info.isConnected));

или подписаться на изменения:

// Subscribe
const unsubscribe = NetInfo.addEventListener(state => {
  console.log("Connection type", state.type);
  console.log("Is connected?", state.isConnected);
});

// Unsubscribe
unsubscribe();

Ознакомьтесь с документами, которые вы можете делать больше интересных вещей, таких как проверка типов соединений.

...