【发布时间】:2015-05-08 15:46:16
【问题描述】:
我正在使用此命令在浏览器中打开我的应用程序:cordova serve,但当我更新我的代码时它不会自行刷新。我该怎么做?
我尝试使用 phonegap serve 代替它,它具有实时重新加载功能,但它不断向我发送警报并使我的浏览器崩溃。
所以,如果你能告诉我如何解决这两个问题中的任何一个,那将是很棒的。
【问题讨论】:
-
确保它是从 Www 文件夹执行的
我正在使用此命令在浏览器中打开我的应用程序:cordova serve,但当我更新我的代码时它不会自行刷新。我该怎么做?
我尝试使用 phonegap serve 代替它,它具有实时重新加载功能,但它不断向我发送警报并使我的浏览器崩溃。
所以,如果你能告诉我如何解决这两个问题中的任何一个,那将是很棒的。
【问题讨论】:
你可以试试Cordova Browsersync plugin。使用插件的说明在plugin's repo。
使用cordova plugin add cordova-plugin-browsersync 添加此插件后,您只需使用cordova run -- --live-reload 即可开始实时重新加载。请注意,如果您有多个设备,这也会启用同步滚动和点击。
【讨论】:
cordova run android。
最简单的解决方案就是使用phonegap serve 而不是cordova serve。只要您安装了phonegap,即使您仅使用cordova 构建了应用程序,它也可以工作。
phonegap serve 为您提供一个实时重新加载的 IP 地址,您可以从浏览器或 phonegap 开发人员应用程序访问该地址。两者都非常方便并且实际工作,这总是一个优点。
【讨论】:
npm install -g phonegap 最简单的解决方案
如果您使用phonegap serve 并且看到 JavaScript 提示,则需要添加一个 sn-p 以防止应用加载本机级别的 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-plugin-browsersync-gen2。它基于旧的废弃插件,与最新版本的 npm 和 Cordova 完全兼容。
此外,此版本还为以下内容添加了缺少的实时重载支持:
cordova run (for each platform individually)
cordova serve
【讨论】:
您可以直接使用浏览器同步,无需使用cordova 插件。请按照以下步骤操作
npm install -g browser-syncplatform/android/platform_www的内容复制到www
<allow-navigation href="http://<YOUR-IP>:3000" />
http://<YOUR-IP>:3000/index.html
browser-sync -w -server
请注意,每次添加新插件时,您都必须重新部署应用程序,并使用新的 platform_www 内容更新 www 文件夹。
每次更新 www,browser-sync 都会自动通知你的 webview,并刷新相同。如果您必须重新启动应用程序并且与浏览器同步的连接丢失,请将设备连接到计算机并使用 chrome 设备检查器刷新应用程序,浏览器同步将再次生效。
【讨论】: