ionic3实现app启动时进行网络监测功能

本文介绍如何使用cordova-plugin-network-information插件在Ionic应用中实现启动时的网络状态监测,并给出具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文出处:https://blog.youkuaiyun.com/ffrr33ee/article/details/79602173

需要联网的app一般都需要进行网络监测,尤其是在app启动时,若未发现网络连接应给出提示,本文在参照官网的基础上实现了app启动进行网络监测,实现该功能其实非常简单,只需用到cordova的一个插件——cordova-plugin-network-information,实现网络监测的核心就在于“this.network.type”,type类型有:,因此通过判断type的类型即可检测网络(官网给出了动态检测网络和手动检测网络的方法),过程如下。

 

第一步——下载插件

cd到ionic项目文件,执行如下命令

 

ionic cordova plugin add cordova-plugin-network-information
npm/cnpm install --save @ionic-native/network

 

第二步——注入依赖(初学者很多会忘了这一步)

 

第三步——在app.component.ts中实现app启动时网络监测

完成代码如下(直接copy即可用)

 

import { Component } from '@angular/core';
import { Platform, LoadingController } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';

import { TabsPage } from '../pages/tabs/tabs';
import {Network} from "@ionic-native/network";

@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  rootPage:any = TabsPage;

  constructor(platform: Platform,
              statusBar: StatusBar,
              splashScreen: SplashScreen,
              private network: Network,
              private loadingCtrl: LoadingController) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      statusBar.styleDefault();
      splashScreen.hide();
      this.checkNetwork();  //写入函数,让app启动后进行网络监测
    });
  }
 //检测网络,若未连接网络,给出提示
  checkNetwork() {
    if(this.network.type === 'unknown') {
      console.log('This is a unknown network, please be careful!');
    } else if(this.network.type === 'none') {
      console.log('none network!');
      let loader = this.loadingCtrl.create({
        content: "当前网络不可用,请检查网络设置!"
      });
      loader.present();
    } else {
      console.log('we got a ' + this.network.type + ' connection, woohoo!');
    }
  }

}

由代码可见实现该功能的核心即是判断type的类型,网上有些帖子说的是检测connection的状态,可能是ionic版本不同的缘故吧,博主试了connection发现不行,参考官网总是没问题的。

 

看下效果吧,当未连接网络时,app会一直给出提示(当然也可用setTimeout函数限制时间)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值