awesome-cordova-plugins/src/plugins/network.ts
2016-03-27 23:17:07 -05:00

89 lines
2.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {Plugin, Cordova, CordovaProperty} from './plugin';
import {Observable} from "rxjs/Observable";
declare var navigator;
/**
* @name Network
* @description
* Requires Cordova plugin: cordova-plugin-network-information. For more info, please see the [Network plugin docs](https://github.com/apache/cordova-plugin-network-information).
*
* @usage
* ```js
* import {Network, Connection} from 'ionic-native';
*
* // watch network for a disconnect
* let disconnectSubscription = Network.onDisconnect().subscribe(() => {
* console.log('network was disconnected :-( ')
* });
*
* // stop disconnect watch
* disconnectSubscription.unsubscribe();
*
*
* // watch network for a connection
* let connectSubscription = Network.onConnect().subscribe(() => {
* console.log('network connected!');*
* // We just got a connection but we need to wait briefly
* // before we determine the connection type. Might need to wait
* // prior to doing any api requests as well.
* setTimeout(() => {
* console.log(Network.connection);
* if (Network.connection === Connection.WIFI) {
* console.log('we got a wifi connection, woohoo!');
* }
* });
* });
*
* // stop connect watch
* connectSubscription.unsubscribe();
*
* ```
*/
@Plugin({
plugin: 'cordova-plugin-network-information',
repo: 'https://github.com/apache/cordova-plugin-network-information',
platforms: ['Amazon Fire OS', 'iOS', 'Android', 'BlackBerry 10', 'Windows Phone 7', 'Windows Phone 8', 'Windows', 'Firefox OS', 'Browser'],
pluginRef: 'navigator.connection'
})
export class Network {
/**
* Return the network connection type
*/
@CordovaProperty
static get connection() : Connection { return navigator.connection.type; }
/**
* Watch the network for a disconnect (i.e. network goes offline)
* @returns {Observable<any>} Returns an observable.
*/
@Cordova({
eventObservable: true,
event: 'offline'
})
static onDisconnect() : Observable<any> { return }
/**
* Watch the network for a connection (i.e. network goes online)
* @returns {Observable<any>} Returns an observable.
*/
@Cordova({
eventObservable: true,
event: 'online'
})
static onConnect() : Observable<any> { return; }
}
export class Connection {
static get UNKNOWN() { return "unknown"; }
static get ETHERNET() { return "ethernet"; }
static get WIFI() { return "wifi"; }
static get CELL_2G() { return "2g"; }
static get CELL_3G() { return "3g"; }
static get CELL_4G() { return "4g"; }
static get CELL() { return "cellular"; }
static get NONE() { return "none"; }
}