React-Native:connectionChange事件与Android的奇怪行为

时间:2019-01-14 17:01:25

标签: android react-native types

第一次启动后未触发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 :(得分:0)

如果您使用NetInfo来跟踪连接性更改,则必须将这两行放在android清单文件的顶部(清单标签内)

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