4

I found this question Cordova with Create-react-app.

Am I able to achieve live-reloading while I'm in development mode and app is running in android emulator? I'm scared that I have to build the app everytime I wanna to see changes.

Is cordova able to watch react-app which run in development mode and read source from index.js listening for changes?

Let's say that I want to achieve something like this:

  1. create cordova project.
  2. create react project inside of /www folder (or any other folder that will work with my use-case...).
  3. run cordova run android from root to run application in Android Simulator and npm start from /www directory.
  4. cordova should be able to listen for changes and live-reload react app inside Android emulator.
  5. I need to able to access cordova instance inside react code to use plugins, etc.

I've found some webpack-server-dev (using webpack v1...) related solutions but none of them seems to be working and I need to restart cordova run android command to see changes in the code. Otherwise these templates doesn't provide functionality to enable access to the cordova plugins instance during development mode

So is really npm build followed by cordova run android only way to develop cordova + react app??

Note 1: I would like to use SQLite cordova plguin so development in browser-only mode and then building the application for android/ios once its done is not my case I think. Do you have any suggestions please?

Note 2: I can't use react-native as I need to use openlayers maps lib.

Thanks you so much for your answers!

sbqq
  • 1,083
  • 1
  • 14
  • 25

1 Answers1

5
  1. Run webpack-dev-server with --host 0.0.0.0 to make it accessible from outside
  2. Change your config.xml and make <content src="..." /> point to your local-IP address and your dev-port, e.g. <content src="http://192.168.0.2:3000/" />
  3. Add a whitelist entry (refer to cordova whitelist-plugin documentation for more details): e.g. <allow-navigation href="http://192.168.0.2:3000/*" />
  4. If you need native functionalities via cordova, you need to make all cordova and cordova-plugin javascript files available in your dev-server. Please check this answer as well (symlink part): https://stackoverflow.com/a/46545408/1930339
Salim
  • 2,446
  • 1
  • 14
  • 12