【React Native】文件翻譯閱讀紀錄 - APIs - NetInfo

by - 上午9:00

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 的跨平台值:
  • 2g
  • 3g
  • 4g
  • unknown

Android

要請求網絡信息,您需要將以下行添加到應用的 AndroidManifest.xml 中:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Methods

Properties


參考

Methods

addEventListener()

NetInfo.addEventListener(eventName, handler);
添加事件處理程序。
參數:
NAMETYPEREQUIREDDESCRIPTION
eventNameenum(connectionChange, change)Yes更改事件名稱。
handlerfunctionYes監聽器功能。
支持的活動:
  • connectionChange: 網絡狀態更改時觸發。事件處理程序的參數是一個帶鍵的對象:
    • type: A ConnectionType (如上所列)
    • effectiveType: An EffectiveConnectionType (如上所列)
  • change:不推薦使用此事件。請改為聽取connectionChange。網絡狀態更改時觸發。事件處理程序的參數是上面列出的已棄用連接類型之一。

removeEventListener()

NetInfo.removeEventListener(eventName, handler);
刪除偵聽器以進行網絡狀態更改。
參數:
NAMETYPEREQUIREDDESCRIPTION
eventNameenum(connectionChange, change)Yes更改事件名稱。
handlerfunctionYes監聽器功能。

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
);

You May Also Like

0 意見