Если вы не можете найти плагин, который бы легко это делал, вам придется получить доступ к родным API, специфичным для платформы , чтобы сделать это на каждой платформе самостоятельно.
На Android вы бы сделали что-то вроде этого:
import * as application from 'application';
...
const wifiService: any = application.android.context
.getSystemService(android.content.Context.WIFI_SERVICE);
// See https://developer.android.com/reference/android/net/wifi/WifiManager#getConnectionInfo()
const wifiInfo: any = wifiService.getConnectionInfo();
// See https://developer.android.com/reference/android/net/wifi/WifiInfo.html#getIpAddress()
const ip: number = wifiInfo.getIpAddress();
Обратите внимание, что IP-адрес, возвращаемый WifiInfo#getIpAddress
, представляет собой number
в TypeScript (int
в Java), что означает, что вам нужно преобразовать его в Обозначение CIDR :
function intToCDIRIP(ip) {
return `${ (ip >> 24 ) & 0xFF }.${ (ip >> 16 ) & 0xFF }.${ (ip >> 8 ) & 0xFF }.${ ip & 0xFF }`;
}
console.log(intToCDIRIP(33353454354)); // Should be 196.5.83.18
Затем вам нужно будет сделать нечто подобное на iOS. Здесь у вас есть еще один вопрос и ответ, объясняющий, как вы это сделаете на iOS с использованием Swift, который вам нужно будет перевести на TypeScript / JavaScript, чтобы иметь возможность получить IP на обеих платформах: Swift - Получить IP-адрес устройства
На самом деле, вы можете подумать о создании плагина, который делает это и делиться им с сообществом ?