Connection API 可以判断设备的联网类型,比如 WIFI ,蜂窝移动网络等等。你可以根据用户的联网的类型,去让应用去做相应的事情。
想要使用这个功能,我们需要先安装一下 network-information 这个插件。在前面介绍 online 和 offline 事件的时候,我们已经安装了这个插件。
用命令可以判断一下应用是否已经安装了这个插件。
打开终端,进入到应用项目的目录 .. cd desktop/hello
然后用 phonegap local plugin list … 这个命令可以查看项目已经安装的插件 … 在这里,你可以看到 org.apache.cordova.network-information
证明已经安装好了这个插件。
下面打开应用的 index.js ….
我们先去定义一个检查连接的函数 … checkConnection: function() {},
这个名称你可以根据自己的需求去命令它。
在这个函数里,我们可以使用 connection.type 来检查当前的网络连接的类型 …. 前面我们要加上一个 navigator ,因为 connection.type 是在 navigator 下面。
navigator.connection.type;
我们可以把检查到的联网类型输出到控制台上面。
console.log('网络连接的类型是:' + navigator.connection.type);
下面我们可以决定在什么情况下执行这个检查联网类型的动作。 你可以把它放在 deviceready 事件发生的时候,这样这个检查联网类型的动作在 phonegap 准备好以后,会被执行一次。
不过这里我们可以把它放在 resume 这个事件发生以后要做的事情里面,这样每次恢复应用的时候,都会去检查一次联网的类型 ..
onResume: function(){
app.checkConnection();
},
保存 ….
打开终端,重新编译安装一下这个应用 …. phonegap run ios
打开 weinre 调试工具的控制台 ….
按一下 Home 键 …. 再次打开应用 … 这样会触发 resume 事件 … 也就会去执行检查联网类型的动作,它会把联网类型输出到控制台上 …
在控制台上,你会看到,现在的 网络连接的类型是: wifi
下面我们再断开网络连接试一下 ….
按下 Home 键,再回到应用 …. 在控制台上,会显示现在的网络连接的类型是 none …. 也就是没有连接网络。
重新定义连接类型的常量
在这里显示的这个网络连接类型的名称,我们可以重新去定义一下。
回到 index.js …
使用这段代码 … 这里我们先把检查到的连接类型交给 networkState ….
然后新建一个叫 states 的对象,并且重新定义了各种网络连接类型的名称 ….
最后我们再修改一下这个 console.log 里的东西,想要显示重新定义的名称 … 把这个 navigator.connection.type s
改成 states[networkState]
重新编译安装一下应用 ….
按下 Home 键 … 再打开应用 ….
现在控制台上显示的网络连接的类型,就会使用我们重新定义的名称了。