[ 
https://issues.apache.org/jira/browse/CB-12035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16273528#comment-16273528
 ] 

jakub-g commented on CB-12035:
------------------------------

(OP here) I moved from cordova to native android dev some time ago, and we've 
noticed similar (not sure if the same) issues in our native code with 
connection status. I've noticed that when you receive network state changed 
event and in the callback you immediately query network for the information, it 
often lies to you and gives you the outdated info. We solved the problem by 
adding a small timeout before querying the detailed network info from the 
callback.

Maybe cordova plugin code could benefit from the same hack.

https://github.com/apache/cordova-plugin-network-information/blob/master/src/android/NetworkManager.java#L103-L113

Alternatively, maybe this line 

https://github.com/apache/cordova-plugin-network-information/blob/master/src/android/NetworkManager.java#L200

should say isConnectedOrConnecting() instead of isConnected(). I'm not sure, 
someone should have a look and try to debug it. Basically add some logs in this 
class, try going into airplane mode and back while connected to WiFi, and 
observe the logs. It should give you a clue what's wrong.

> [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:
> cordova-plugin-network-information@1.3.0 (latest)
> cordova-plugin-network-information@1.2.0
>            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: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to