科尔多瓦(Cordova +)在开发模式下通过热重载进行反应

时间:2018-11-22 06:51:17

标签: reactjs cordova webpack

我发现了这个问题Cordova with Create-react-app

在开发模式下并且应用程序在android模拟器中运行时,我是否可以实现实时重载?我很害怕每次想看到更改时都必须构建该应用程序。

cordova是否可以观看在开发模式下运行的react-app并从index.js读取源代码以监听更改?

让我们说我想实现以下目标:

  1. 创建cordova项目。
  2. 在/ www文件夹(或将与我的用例一起使用的任何其他文件夹...)中创建react项目。
  3. 从根目录运行cordova run android以在Android Simulator中运行应用程序,从/ www目录运行npm start
  4. cordova应该能够在Android模拟器中侦听更改并实时重新加载React应用。
  5. 我需要能够在react代码中访问cordova实例以使用插件等。

我已经找到了一些与webpack-server-dev(使用webpack v1 ...)相关的解决方案,但是它们似乎都不起作用,因此我需要重新启动cordova run android命令以查看代码中的更改。否则,这些模板将不提供在开发模式下启用对cordova插件实例的访问的功能

  

那么npm build紧跟着cordova run android之后,才是开发cordova + react应用程序的唯一方法吗?

注1:我想使用SQLite cordova plguin,因此只能在浏览器模式下进行开发,一旦完成,就可以为android / ios构建应用程序,这不是我的情况。请问您有什么建议吗?

注2:我不能使用react-native,因为我需要使用openlayers maps lib。

非常感谢您的回答!

1 个答案:

答案 0 :(得分:2)

  1. 使用--host 0.0.0.0运行webpack-dev-server,以使其可以从外部访问
  2. 更改您的config.xml,并使<content src="..." />指向您的本地IP地址和您的开发端口,例如<content src="http://192.168.0.2:3000/" />
  3. 添加白名单条目(有关更多详细信息,请参阅cordova白名单插件文档): <allow-navigation href="http://192.168.0.2:3000/*" />
  4. 如果您需要通过cordova获得本机功能,则需要在开发服务器中提供所有cordova和cordova-plugin javascript文件。请同时检查此答案(符号链接部分):https://stackoverflow.com/a/46545408/1930339