You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Prashant Malik (JIRA)" <ji...@apache.org> on 2017/09/14 07:24:00 UTC

[jira] [Commented] (CB-12035) [cordova-plugin-network-information] connection info is not reliable on Android 6

    [ 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:
> 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-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org