我正在使用$cordovaNetwork
来了解我的项目何时连接到网络,何时不知道。我使用方法isOnline()
,它返回false。但事实并非如此,因为我知道在设备准备就绪时我已经连接好了。我从互联网上捕获的一些信息是在开头加载的,所以我连接到互联网。
当在线活动被解雇时?当$cordovaNetwork
确实知道应用程序在线时?有时它会告诉我有连接(TRUE)但有时它会告诉我没有(FALSE)。
最后,我使用那个应用程序,所以我改变了状态,然后$cordoaNetwork.isonline()
返回FALSE,非常奇怪。
任何人都可以帮助我吗?文档不是很广泛。如果可以,请举一些例子。如果需要更多信息,请问我。
感谢
答案 0 :(得分:1)
如果您的navigator.connection.type
为Connection.UNKNOWN
,则$cordovaNetwork.isOnline()
始终会返回false
,即使您已在线。
我认为这是ngCordova的错误
ngCordova
来源
isOnline: function () {
var networkState = navigator.connection.type;
return networkState !== Connection.UNKNOWN && networkState !== Connection.NONE;
},
isOffline: function () {
var networkState = navigator.connection.type;
return networkState === Connection.UNKNOWN || networkState === Connection.NONE;
},
您需要覆盖isOnline
和isOffline
功能。
在app.run
部分覆盖,
$cordovaNetwork.isOnline = function () {
return navigator.connection.type !== Connection.NONE;
};
$cordovaNetwork.isOffline = function () {
return navigator.connection.type === Connection.NONE;
};
我希望得到你的帮助
答案 1 :(得分:0)
我已经完成了下一步:
打开终端并编写“nvm use v4.2.3”以使nodejs的正确版本处于活动状态。 转到项目文件夹,在我的例子中,“cd / var / phone / myProject” 写“离子运行android”。 等待几秒钟直到应用程序启动。
直到这里,我没有问题。该应用程序构建良好。然后,我使用$ cordovaNetwork来监控在线和离线状态,何时处于活动状态。 $ cordovaNetwork.isOnline()有效,但似乎有时候不知道某个州或其他州何时真正活跃。我运行应用程序的所有时间,我知道这是连接的,因为一些代码在服务器中,所以如果它没有加载,它将显示为空白。
所以知道在线活动是活跃的,为什么$ cordovaNetwork.isOnline()没有检测到它?我在其他论坛上寻找解决方案,但似乎没有人遇到过这个问题。
是的,我正在模拟应用程序,也许问题出在模拟器中?在我使用命令“离子运行android”之前,我必须打开其他终端并编写“android avd”以拥有一个android开放平台来使用该应用程序。我还没有在手机上测试过它。
感谢您的帮助。和jcarrera一样,我看到你分享的帖子,但是我需要直接使用$ cordovaNetwork,而不是使用navigator.connection.type,当应用程序通过浏览器运行时使用navigator。无论如何,我证明了这一点,但我认为它与此post中的无关。 谢谢你的帮助