因此,在开发过程中,我关闭了wifi,然后离子应用程序在Android设备/模拟器中无法正常工作。
但是,当我关闭wifi与发布和签署apk文件的Android应用程序工作正常。
问题是我需要我的应用程序在互联网连接关闭时做某事:
if(window.Connection) {
if(navigator.connection.type == Connection.NONE) {
//doSomething();
}
}
但是,由于应用程序不能在模拟器或设备上运行,如果我关闭wifi,我无法测试代码是否正常运行而无需构建一个非常耗时的发布版apk。即使我关闭wifi,我怎样才能使它工作?
我收到如下错误消息:
答案 0 :(得分:4)
当您使用ionic run android -l -c
运行应用程序时,所有数据和资源都是通过网络从您的计算机提供的。事实上,在这种情况下,它可以在移动设备上运行,就像您使用ionic serve
在计算机浏览器上运行一样。因此,当您关闭移动互联网时,它无法通过计算机提供服务,因为网络是服务页面的渠道。但ionic run android
打包了移动设备中的所有应用程序源,资源来自file:///android_asset/www/
。
离子运行的真实目的-l -c:
l
代表liverload,只要源代码发生变化,就会继续在移动设备上刷新应用程序。 c
代表控制台,应用程序控制台日志显示在您启动应用程序的命令行中。它有助于离子开发人员进行测试,因为他们不必一次又一次地安装应用程序。但请记住将手机连接到计算机,两者都应该在同一个互联网上。
注意:有时cordova plugins
像相机等在这个环境中表现得很奇怪。因此,在检查插件相关功能时,如果没有-l -c
,请更好地使用。
答案 1 :(得分:0)
刚刚解决了这个问题。我试图使用<ul>
<li><a class="badge1" id="popbadge1" href="#" role="button" data-trigger="focus" tabindex="0" data-placement="bottom">1</a></li>
<!-- Popover 1 hidden content -->
<div id="hiddenpopbadge1" style="display: none">
<h3>Content</h3>
</div>
<li><a class="badge2" id="popbadge2" href="#" role="button" data-trigger="focus" tabindex="0" data-placement="bottom">2</a></li>
<!-- Popover 2 hidden content -->
<div id="hiddenpopbadge2" style="display: none">
<h3>Content 2</h3>
</div>
<li><a class="badge3" id="popbadge3" href="#" role="button" data-trigger="focus" tabindex="0" data-placement="bottom">3</a></li>
<!-- Popover 3 hidden content -->
<div id="hiddenpopbadge3" style="display: none">
<h3>Content 3</h3>
</div>
</ul>
运行应用程序,所以现在我使用ionic run android -l -c
运行它,当然不需要livereload ionic run android
,现在app工作得很好