使用命令 cordova serve 时如何添加 Live Reload?
How to add Live Reload when using the command cordova serve?
我正在使用此命令在浏览器中打开我的应用程序:cordova serve
但是当我更新我的代码时它不会自行刷新。我该怎么做?
我曾尝试使用 phonegap serve
代替,它具有实时重新加载功能,但它不断向我发送警报并使我的浏览器崩溃。
所以,如果你能告诉我如何解决这两个问题中的任何一个,那将是非常好的。
如果您使用 phonegap serve
并且看到 JavaScript 提示,则需要添加一个代码段以防止应用程序加载本机级 JavaScript 代码。
替换<script type="text/javascript" src="phonegap.js"></script>
与
<script type="text/javascript">
if (!navigator.userAgent.toLowerCase().match('chrome')) {
document.write("<script src='phonegap.js'><\/script>");
}
</script>
请注意,这对 cordova.js
和 phonegap.js
都有效(它们应该是同一个文件)
您可以尝试 Cordova Browsersync plugin. Instructions to use the plugin are in the plugin's repo。
使用 cordova plugin add cordova-plugin-browsersync
添加此插件后,您只需使用 cordova run -- --live-reload
即可开始实时重新加载。请注意,如果您有多个设备,这也会启用同步滚动和点击。
最简单的解决方案就是使用 phonegap serve
而不是 cordova serve
。只要您安装了 phonegap,即使您仅使用 cordova 构建应用程序,它也能正常工作。
phonegap serve
为您提供一个 IP 地址,您可以通过浏览器或 phonegap 开发者应用程序访问该地址。两者都非常方便,而且确实有效,这总是一个加分项。
您可以直接使用browser-sync,无需cordova插件。按照以下步骤
npm install -g browser-sync
- 将
platform/android/platform_www
的内容复制到www
- 将以下内容添加到 config.xml:
<allow-navigation href="http://<YOUR-IP>:3000" />
- 将 base-href(如果 angular 项目)设置为
http://<YOUR-IP>:3000/index.html
- 运行
browser-sync -w -server
里面 www
- 更新内容安全策略以从 YOUR-IP:3000 执行 JS 和资产。还允许 webscokets (ws) 用于浏览器同步
- 使用 cordova 部署应用程序 运行 android
请注意,每次添加新插件时,您都必须重新部署应用程序,并使用新的 platform_www 内容更新 www 文件夹。
每次更新www,browser-sync会自动通知你的webview,刷新一样。如果您必须重新启动应用程序并且与浏览器同步的连接丢失,请将设备连接到计算机并使用 chrome 设备检查器刷新应用程序,浏览器同步将再次生效。
您也可以尝试cordova-plugin-browsersync-gen2。它基于旧的废弃插件,完全兼容最新版本的 npm 和 Cordova。
此外,此版本为以下内容添加了缺少的实时重新加载支持:
cordova run (for each platform individually)
cordova serve
cordova-plugin-browsersync 可能已过时。或者,您可以使用 watch 命令,例如:
npm install watch --save-dev
转到 package.json 文件下的脚本行,然后添加:
"dev": "观看 'cordova run browser' www"
npm 运行 开发
当您在 www 文件夹下更改任何内容时,它会自动刷新页面。
示例屏幕截图:
我正在使用此命令在浏览器中打开我的应用程序:cordova serve
但是当我更新我的代码时它不会自行刷新。我该怎么做?
我曾尝试使用 phonegap serve
代替,它具有实时重新加载功能,但它不断向我发送警报并使我的浏览器崩溃。
所以,如果你能告诉我如何解决这两个问题中的任何一个,那将是非常好的。
如果您使用 phonegap serve
并且看到 JavaScript 提示,则需要添加一个代码段以防止应用程序加载本机级 JavaScript 代码。
替换<script type="text/javascript" src="phonegap.js"></script>
与
<script type="text/javascript">
if (!navigator.userAgent.toLowerCase().match('chrome')) {
document.write("<script src='phonegap.js'><\/script>");
}
</script>
请注意,这对 cordova.js
和 phonegap.js
都有效(它们应该是同一个文件)
您可以尝试 Cordova Browsersync plugin. Instructions to use the plugin are in the plugin's repo。
使用 cordova plugin add cordova-plugin-browsersync
添加此插件后,您只需使用 cordova run -- --live-reload
即可开始实时重新加载。请注意,如果您有多个设备,这也会启用同步滚动和点击。
最简单的解决方案就是使用 phonegap serve
而不是 cordova serve
。只要您安装了 phonegap,即使您仅使用 cordova 构建应用程序,它也能正常工作。
phonegap serve
为您提供一个 IP 地址,您可以通过浏览器或 phonegap 开发者应用程序访问该地址。两者都非常方便,而且确实有效,这总是一个加分项。
您可以直接使用browser-sync,无需cordova插件。按照以下步骤
npm install -g browser-sync
- 将
platform/android/platform_www
的内容复制到www
- 将以下内容添加到 config.xml:
<allow-navigation href="http://<YOUR-IP>:3000" />
- 将 base-href(如果 angular 项目)设置为
http://<YOUR-IP>:3000/index.html
- 运行
browser-sync -w -server
里面 www - 更新内容安全策略以从 YOUR-IP:3000 执行 JS 和资产。还允许 webscokets (ws) 用于浏览器同步
- 使用 cordova 部署应用程序 运行 android
请注意,每次添加新插件时,您都必须重新部署应用程序,并使用新的 platform_www 内容更新 www 文件夹。
每次更新www,browser-sync会自动通知你的webview,刷新一样。如果您必须重新启动应用程序并且与浏览器同步的连接丢失,请将设备连接到计算机并使用 chrome 设备检查器刷新应用程序,浏览器同步将再次生效。
您也可以尝试cordova-plugin-browsersync-gen2。它基于旧的废弃插件,完全兼容最新版本的 npm 和 Cordova。
此外,此版本为以下内容添加了缺少的实时重新加载支持:
cordova run (for each platform individually)
cordova serve
cordova-plugin-browsersync 可能已过时。或者,您可以使用 watch 命令,例如:
npm install watch --save-dev
转到 package.json 文件下的脚本行,然后添加:
"dev": "观看 'cordova run browser' www"
npm 运行 开发
当您在 www 文件夹下更改任何内容时,它会自动刷新页面。
示例屏幕截图: