Как идентифицировать пользователя мобильного приложения при подключении к Wi-Fi?
Существует домашняя автоматизация, построенная на платформе Tuya Smart IoT. Он используется для гостевого дома и имеет несколько сценариев, таких как встреча гостей, открытие дверей, включение света и т. д.
Посетители бронируют этот дом через мобильное приложение (созданное с помощью React Native). Есть ли возможность идентифицировать пользователя в мобильном приложении, чтобы при его подключении к Wi-Fi роутеру срабатывал какой-то сценарий?
Tuya IoT может запускать сценарии при подключении нового устройства, но как определить, является ли подключенное устройство точно таким же, которое забронировало этот дом из приложения? Невозможно прочитать IMEI или MAC-адрес устройства, поэтому я понятия не имею, как реализовать эту идентификацию.
2 ответа
вы можете использовать библиотеку react-native-net-info, с ее помощью мы можем получить состояние подключения, например, сеть Wi-Fi или SIM-карты и т. д. Также мы можем получить IP-адрес устройства и другую другую информацию, связанную с подключением.
Также подробные свойства указаны в ссылке NPM, приведенной ниже.
ссылка: https://www.npmjs.com/package/@react-native-community/netinfo
npm я реагирую-родная-сетевая-информация
import { NetworkInfo } from "react-native-network-info";
// Get Local IP
NetworkInfo.getIPAddress().then(ipAddress => {
console.log(ipAddress);
});
// Get IPv4 IP (priority: WiFi first, cellular second)
NetworkInfo.getIPV4Address().then(ipv4Address => {
console.log(ipv4Address);
});
// Get Broadcast
NetworkInfo.getBroadcast().then(broadcast => {
console.log(broadcast);
});
// Get SSID
NetworkInfo.getSSID().then(ssid => {
console.log(ssid);
});
// Get BSSID
NetworkInfo.getBSSID().then(bssid => {
console.log(bssid);
});
// Get Subnet
NetworkInfo.getSubnet().then(subnet => {
console.log(subnet);
});
// Get Default Gateway IP
NetworkInfo.getGatewayIPAddress().then(defaultGateway => {
console.log(defaultGateway);
});
// Get frequency (supported only for Android)
NetworkInfo.getFrequency().then(frequency => {
console.log(frequency);
});