【React Native】文件翻譯閱讀紀錄 - APIs - NetInfo
![]() |
| Facebook Open Source React Native |
NetInfo
NetInfo 公開有關在線/離線狀態的信息
NetInfo.getConnectionInfo().then((connectionInfo) => {
console.log('Initial, type: ' + connectionInfo.type + ', effectiveType: ' + connectionInfo.effectiveType);
});
function handleFirstConnectivityChange(connectionInfo) {
console.log('First change, type: ' + connectionInfo.type + ', effectiveType: ' + connectionInfo.effectiveType);
NetInfo.removeEventListener(
'connectionChange',
handleFirstConnectivityChange
);
}
NetInfo.addEventListener(
'connectionChange',
handleFirstConnectivityChange
);
ConnectionType enum
ConnectionType描述設備用於與網絡通信的連接類型。ConnectionType 的跨平台值:
none- 設備處於脫機狀態wifi- 設備在線並通過wifi連接,或者是iOS模擬器cellular- 設備通過Edge,3G,WiMax或LTE連接unknown- 錯誤情況和網絡狀態未知
ConnectionType的僅限Android的值:
bluetooth- 設備通過藍牙連接ethernet- 設備通過以太網連接wimax-設備通過WiMAX連接
EffectiveConnectionType enum
EffectiveConnectionType 的跨平台值:
2g3g4gunknown
Android
要請求網絡信息,您需要將以下行添加到應用的 AndroidManifest.xml 中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />Methods
Properties
參考
Methods
addEventListener()
NetInfo.addEventListener(eventName, handler);
添加事件處理程序。
參數:
| NAME | TYPE | REQUIRED | DESCRIPTION |
|---|---|---|---|
| eventName | enum(connectionChange, change) | Yes | 更改事件名稱。 |
| handler | function | Yes | 監聽器功能。 |
支持的活動:
connectionChange: 網絡狀態更改時觸發。事件處理程序的參數是一個帶鍵的對象:type: AConnectionType(如上所列)effectiveType: AnEffectiveConnectionType(如上所列)
change:不推薦使用此事件。請改為聽取connectionChange。網絡狀態更改時觸發。事件處理程序的參數是上面列出的已棄用連接類型之一。
removeEventListener()
NetInfo.removeEventListener(eventName, handler);
刪除偵聽器以進行網絡狀態更改。
參數:
| NAME | TYPE | REQUIRED | DESCRIPTION |
|---|---|---|---|
| eventName | enum(connectionChange, change) | Yes | 更改事件名稱。 |
| handler | function | Yes | 監聽器功能。 |
getConnectionInfo()
NetInfo.getConnectionInfo();
返回一個promise,該promise分別解析為具有 type 和 effectiveType 鍵的對象,其值分別為 ConnectionType 和 EffectiveConnectionType。
isConnectionExpensive()
NetInfo.isConnectionExpensive();
適用於Android。檢測當前活動連接是否已計量。當用戶對該連接上的大量數據使用敏感時,由於貨幣成本,數據限製或電池/性能問題,網絡被分類為計量。
NetInfo.isConnectionExpensive()
.then(isConnectionExpensive => {
console.log('Connection is ' + (isConnectionExpensive ? 'Expensive' : 'Not Expensive'));
})
.catch(error => {
console.error(error);
});
Properties
isConnected
適用於所有平台。異步獲取布爾值以確定Internet連接。
NetInfo.isConnected.fetch().then(isConnected => {
console.log('First, is ' + (isConnected ? 'online' : 'offline'));
});
function handleFirstConnectivityChange(isConnected) {
console.log('Then, is ' + (isConnected ? 'online' : 'offline'));
NetInfo.isConnected.removeEventListener(
'connectionChange',
handleFirstConnectivityChange
);
}
NetInfo.isConnected.addEventListener(
'connectionChange',
handleFirstConnectivityChange
);

0 意見