# Network Information プラグイン

このプラグインの詳細は、 [こちらの原文 ( GitHub )](https://github.com/apache/cordova-plugin-network-information) をご確認ください。

### プラグイン ID

```javascript
cordova-plugin-network-information
```

### プラグインの追加方法

このプラグインを使用する場合には、Monaca クラウド IDE の \[ Cordova プラグインの管理 ] 上で、`Network Information` プラグインを[有効](https://ja.docs.monaca.io/products_guide/monaca_ide/dependencies/cordova_plugin#cordova-puraguin-noinpto)にします。

### 対象プラットフォーム

* Android
* iOS

### Connection

`connection` オブジェクトを使用して、セルラー、WiFi 接続などのネットワーク情報を取得します ( `navigator.connection` 経由で情報にアクセスします )。

### プロパティ

* connection.type

### 定数

* Connection.UNKNOWN
* Connection.ETHERNET
* Connection.WIFI
* Connection.CELL\_2G
* Connection.CELL\_3G
* Connection.CELL\_4G
* Connection.CELL
* Connection.NONE

### connection.type

このプロパティを使用して、ネットワーク接続の状態と接続のタイプを確認します。

#### 例

```javascript
function checkConnection() {
    var networkState = navigator.connection.type;

    var states = {};
    states[Connection.UNKNOWN]  = 'Unknown connection';
    states[Connection.ETHERNET] = 'Ethernet connection';
    states[Connection.WIFI]     = 'WiFi connection';
    states[Connection.CELL_2G]  = 'Cell 2G connection';
    states[Connection.CELL_3G]  = 'Cell 3G connection';
    states[Connection.CELL_4G]  = 'Cell 4G connection';
    states[Connection.CELL]     = 'Cell generic connection';
    states[Connection.NONE]     = 'No network connection';

    alert('Connection type: ' + states[networkState]);
}

checkConnection();
```

**API の変更点**

Cordova 2.3.0 までは、`navigator.network.connection` 経由で `Connection` オブジェクトにアクセスしていましたが、W3C の仕様に準拠するため、`navigator.connection` 経由に変更しました。 `navigator.network.connection` は利用できますが、将来的には廃止します。

**iOS 特有の動作**

* iOS では、セルラー接続のタイプを識別できません。
  * モバイルデータ通信 ( セルラーを使用したデータ通信 )に関しては、`navigator.connection.type` は `Connection.CELL`になります。

## ネットワーク関連のイベント

### offline

アプリがオフラインになったときに、このイベントが発火します。端末は、インターネットに接続されていません。

```javascript
document.addEventListener("offline", yourCallbackFunction, false);
```

#### 詳細

デバイスのネットワーク接続が切れたときに、`offline` ( オフライン ) イベントが発火します ( `connection.type` が `NONE` に変わったときに発火します )。ネットワーク接続が切れているため、アプリは、インターネットへアクセスできません。Connection API と同じ情報を使用します。

原則、イベントリスナーの登録には、 `document.addEventListener` を使用します。また、JavaScript からネイティブ機能へのアクセスは、`deviceready` イベントの発火後に行います。

#### 例

```javascript
document.addEventListener("offline", onOffline, false);

function onOffline() {
    // Handle the offline event
}
```

#### iOS 特有の動作

初回起動時は、`offline` ( オフライン ) イベントが発火するまで ( 発火の条件が揃ってること )、最低 1 秒かかります。

### online

アプリがオンラインになったときに、このイベントが発火します。端末は、インターネットに接続されています。

```javascript
document.addEventListener("online", yourCallbackFunction, false);
```

#### 詳細

端末がネットワークに接続して、アプリからインターネットが使用できる状態になったときに、`online` ( オンライン ) イベントが発火します ( `connection.type` が `NONE` から他の値に変わったときに発火します )。Connection API と同じ情報を使用します。

原則、イベントリスナーの登録には、 `document.addEventListener` を使用します。また、JavaScript からネイティブ機能へのアクセスは、`deviceready` イベントの発火後に行います。

#### 例

```javascript
document.addEventListener("online", onOnline, false);

function onOnline() {
    // Handle the online event
}
```

#### iOS 特有の動作

初回起動時は、`online` ( オンライン ) イベントが発火するまで ( 発火の条件が揃ってること )、最低 1 秒かかります ( `connection.type` が `UNKNOWN` になる前に )。
