React-Native: странное поведение события connectionChange с Android - PullRequest
0 голосов
/ 14 января 2019

Событие connectionChange не запускается после первого запуска, мне нужно изменить файл, чтобы запустить сборку для отображения журнала «Тип подключения».
Он отлично работает с IOS, есть проблема только с Android.
Что-то не так в моем коде?

import { ConnectionInfo, NetInfo } from "react-native"
import { Observable, Observer } from "rxjs"
import { publishReplay, refCount, tap } from "rxjs/operators"

export const connectivityStatus$: Observable<ConnectionInfo> = Observable.create((observer: Observer<ConnectionInfo>) => {
  const handler = observer.next.bind(observer)
  console.log("entering connection:")
  NetInfo.addEventListener("connectionChange", handler)
  console.log("entering connection 2:")
  return () => NetInfo.removeEventListener("connectionChange", handler)
}).pipe(
  tap((s: ConnectionInfo) => {
    if (process.env.NODE_ENV === "development") {
      console.log("Connection type:", s.type)
    }
  }),
  publishReplay(),
  refCount(),
)

1 Ответ

0 голосов
/ 14 января 2019

Если вы используете NetInfo для отслеживания изменений подключения, вы должны поместить эти 2 строки в верхней части файла манифеста Android (внутри тега манифеста)

  <uses-permission android:name="android.permission.INTERNET" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...