Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get React Native packager ip from JavaScript?

Is there any way to get dynamicly React Native packager ip with port or full path to bundle - jsCodeLocation through JavaScript code? It can be localhost:8081 or 192.168.0.1.xip.io:8081. It depends on the running device - simulator or real device

like image 808
artem_russkikh Avatar asked Nov 30 '22 09:11

artem_russkikh


2 Answers

I found NativeModules in ReactNative source code and discover scriptURL here:

import { NativeModules } from 'react-native';

...

const scriptURL = NativeModules.SourceCode.scriptURL;
const address = scriptURL.split('://')[1].split('/')[0];
const hostname = address.split(':')[0];
const port = address.split(':')[1];

It works on simulator and device!

like image 149
artem_russkikh Avatar answered Dec 09 '22 16:12

artem_russkikh


import { NativeModules } from 'react-native';
import url from 'url';

const { hostname } = url.parse(NativeModules.SourceCode.scriptURL);
like image 28
Cory Robinson Avatar answered Dec 09 '22 17:12

Cory Robinson