Skip to content

NetInfo not reporting cellular connection type on Physical iPhone #13579

@Eptis

Description

@Eptis

Description

I'm using NetInfo to determine if a user is connected to cellular, wifi or is offline. In the specific case of cellular, I only see it report cell after a fresh install of the application but after a second or so immediately switch to none as the reported connectivity type. Switching to other connectivity types (wifi/airplane mode) and then back to a cellular connection then always reports none as the connectivity type. I would expect that it would always report cell if i'm connected over a cellular connection. I double checked the cellular connection and I'm perfectly able to navigate the web using the cellular connection.

Reproduction Steps and Sample Code

// Using a physical iPhone 5C
// index.ios.js
componentWillMount() {
    NetInfo.addEventListener('change', type => {
      this.setState({connectionTypes: [type, ...this.state.connectionTypes]})
    })
    NetInfo.fetch().done((type) => {
      this.setState({connectionTypes: [type, ...this.state.connectionTypes]})
    });
  }

// debug logs from logging the value from RCTNetInfo.m
2017-04-19 13:37:36.441607+0200 testApp[434:45758] Value of string is wifi
2017-04-19 13:37:40.847758+0200 testApp[434:45758] Value of string is wifi
// Turn off Wi-Fi
2017-04-19 13:37:40.857796+0200 testApp[434:45758] Value of string is cell
2017-04-19 13:37:41.236509+0200 testApp[434:45758] Value of string is cell
2017-04-19 13:37:44.287310+0200 testApp[434:45758] Value of string is none
2017-04-19 13:38:22.312907+0200 testApp[434:45758] Value of string is none
// Turn on Wi-Fi
2017-04-19 13:38:22.314427+0200 testApp[434:45758] Value of string is wifi
2017-04-19 13:38:22.418884+0200 testApp[434:45758] Value of string is wifi
// Turn off Wi-Fi
2017-04-19 13:38:26.224729+0200 testApp[434:45758] Value of string is none
2017-04-19 13:38:26.225849+0200 testApp[434:45758] Value of string is none
2017-04-19 13:38:29.342270+0200 testApp[434:45758] Value of string is none
// Turn on Wi-Fi
2017-04-19 13:38:32.915707+0200 testApp[434:45758] Value of string is wifi
2017-04-19 13:38:32.999602+0200 testApp[434:45758] Value of string is wifi
// Turn off Wi-Fi
2017-04-19 13:38:36.066518+0200 testApp[434:45758] Value of string is none
2017-04-19 13:38:36.067376+0200 testApp[434:45758] Value of string is none

Basically boot the app, setup the event listener and then start turning the Wi-Fi on and off.

Solution

Not sure about this, but maybe something is going wrong with the events being dispatched by the observing ObjC code in RCTNetInfo?

Additional Information

  • React Native version: 0.43.3
  • Platform: iOS 10.3.1
  • Development Operating System: macOS Sierra
  • Dev tools: Xcode

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions