第一次启动后未触发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(),
)
答案 0 :(得分:0)
如果您使用NetInfo来跟踪连接性更改,则必须将这两行放在android清单文件的顶部(清单标签内)
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />