From c4620d0f5297cecfa29d868436d17da9b5bc3533 Mon Sep 17 00:00:00 2001 From: "Keith D. Moore" Date: Sun, 27 Mar 2016 21:07:40 -0500 Subject: [PATCH] add missing network.ts from previous commit --- src/plugins/network.ts | 87 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/plugins/network.ts diff --git a/src/plugins/network.ts b/src/plugins/network.ts new file mode 100644 index 000000000..df9bb47a1 --- /dev/null +++ b/src/plugins/network.ts @@ -0,0 +1,87 @@ +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!'); + * // use a timeout so that we can determine what type of connection we have + * 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; } + // static get preferences() { return window.AppRate.preferences; } + + /** + * Watch the network for a disconnect (i.e. network goes offline) + * @returns {Observable} Returns an observable. + */ + @Cordova({ + eventObservable: true, + event: 'offline' + }) + static onDisconnect() : Observable { return } + + /** + * Watch the network for a connection (i.e. network goes online) + * @returns {Observable} Returns an observable. + */ + @Cordova({ + eventObservable: true, + event: 'online' + }) + static onConnect() : Observable { 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"; } +}