[
https://issues.apache.org/jira/browse/CB-12035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16165881#comment-16165881
]
Prashant Malik commented on CB-12035:
-------------------------------------
Hi Everyone,
We are facing the same issue with our clients and i found that *network.js*
code in function it's invoking the wrong event i.e _OFFLINE_ even though device
is connected to the Wi-Fi. JS code is as follows:
{code:java}
netwrok.js: #59
channel.onCordovaReady.subscribe(function() {
me.getInfo(function(info) {*//info value is coming as none even-though
device is connected to wi-fi*
me.type = info;
if (info === "none") {
// set a timer if still offline at the end of timer send the
offline event
timerId = setTimeout(function(){
cordova.fireDocumentEvent("offline");
timerId = null;
}, timeout);
} else {
// If there is a current offline event pending clear it
if (timerId !== null) {
clearTimeout(timerId);
timerId = null;
}
cordova.fireDocumentEvent("online");
}
// should only fire this once
if (channel.onCordovaConnectionReady.state !== 2) {
channel.onCordovaConnectionReady.fire();
}
}
{code}
Any update on the solution or if anyone found the work around? Please suggest!!
Thanks & Regards
Prashant Malik
> [cordova-plugin-network-information] connection info is not reliable on
> Android 6
> ---------------------------------------------------------------------------------
>
> Key: CB-12035
> URL: https://issues.apache.org/jira/browse/CB-12035
> Project: Apache Cordova
> Issue Type: Bug
> Components: cordova-plugin-network-information
> Affects Versions: 1.3.0
> Environment: Samsung Galaxy Edge S6 / Android 6
> useragent: "Mozilla/5.0 (Linux; Android 6.0.1; SM-G925F Build/MMB29K; wv)
> AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.124
> Mobile Safari/537.36"
> reproduced with:
> [email protected] (latest)
> [email protected]
> Reporter: jakub-g
> Labels: android
>
> I've noticed that information exposed by the plugin is not reliable. It
> happens often that I'm connected to the internet via WiFi, and the plugin
> says that there's no connection.
> It's not easy to reproduce it on-demand, but I reproduced it many times
> recently. It happens most often when in the morning, I open the Cordova app
> that was running in background throughout the night.
> Then, when I connect to Chrome Dev Tools, I can do a repl session like this:
> {code}
> > navigator.connection.type
> "none"
> > window.fetch('http://www.example.org').then(function(res)
> > {console.log(res.status)})
> Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
> 200
> Fetch complete: GET "http://www.example.org/".(anonymous function)
> > navigator.connection.type
> "none"
> {code}
> So, the plugin thinks I'm offline, yet any HTTP calls done within the app
> without checking if I'm offline or online, are successful (either from the
> app or devtools).
> When I disable WiFi and reenable it, after a few seconds the plugin updates
> its state and then it tells that connection type is "wifi".
> There are several possibilities here:
> - either system (or device driver) gives us incorrect information, or
> - cordova plugin is caching data and/or not listening properly to all the
> events and/or incorrectly processing it
> and most probably the issue manifests itself when the device is asleep for
> many hours (but I'm not sure about this).
> Note that I also noticed another issue, that sometimes the Chrome network
> stack thinks I'm offline (when I do an HTTP call, it fails immediately and I
> see network errors in devtools console) - and then I restart the Cordova app,
> and everything's fine, all HTTP calls are ok - but this is unrelated to this
> ticket, and perhaps a bug in Chrome.
> This ticket seems to be most likely a bug in the plugin, because as I said
> before, doing HTTP call succeeds despite the plugin telling me that I'm
> offline.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]