iOS 檢測網(wǎng)絡(luò)連接狀態(tài)

網(wǎng)絡(luò).jpg

網(wǎng)絡(luò)

不論是APP 還是PC 想上網(wǎng)沖浪都離不開網(wǎng)絡(luò)蚕键。但是如果沒有網(wǎng)絡(luò)的時(shí)候應(yīng)該如何做才能讓用戶有更好的體驗(yàn)?zāi)兀?br> 看下效果圖:


無網(wǎng)絡(luò).PNG

實(shí)現(xiàn)

  • 寫個(gè)單例(因?yàn)槲覀兠總€(gè)頁面都要檢測一下)
    這個(gè)單例就是我們顯示沒有網(wǎng)絡(luò)的界面毅舆。
    比如里面有:無網(wǎng)絡(luò)的圖片 以及刷新的按鈕!
    主要代碼如下:
    創(chuàng)建單例
  static ZSCDetectNetWork *instance = nil;
  + (instancetype)sharedInstance
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance.addView = nil;
        instance.status = 10;
        instance = [[[self class] alloc] init];
        instance.photoImageView = [[UIImageView alloc] init];
        instance.photoImageView.image = [UIImage imageNamed:@"noNetwork"];
        [instance addSubview:instance.photoImageView];
        instance.detectBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        instance.detectBtn.titleLabel.font = [UIFont systemFontOfSize:14];
        [instance.detectBtn setTitle:@"網(wǎng)絡(luò)狀態(tài)待提升议谷,點(diǎn)擊重試" forState:UIControlStateNormal];
        [instance.detectBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
        [instance.detectBtn addTarget:instance action:@selector(refreshNetwork) forControlEvents:UIControlEventTouchUpInside];
        [instance addSubview:instance.detectBtn];
    });
    return instance;
}
  + (instancetype)allocWithZone:(struct _NSZone *)zone
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [super allocWithZone:zone];
    });
    return instance;
}

網(wǎng)絡(luò)檢查

  // 輸出對應(yīng)的網(wǎng)絡(luò)狀態(tài)
  - (void)reachabilityStatus
{
    NetworkStatus status = self.reachability.currentReachabilityStatus;
    if (status == self.status) {
        
    }
    
    self.status = status;
    
    switch (status) {
        case NotReachable:
            NSLog(@"沒有聯(lián)網(wǎng)");
            instance.backgroundColor = [UIColor colorWithRed:239/255.0 green:239/255.0 blue:244/255.0 alpha:1];
            
            instance.frame = instance.addView.frame;
            [instance.addView addSubview:instance];
            
            [instance.photoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(instance).offset(170);
                make.left.equalTo(instance).offset(instance.frame.size.width/2 - (198/2));
                make.width.mas_equalTo(198);
                make.height.mas_equalTo(151.5);
            }];
            
            [instance.detectBtn mas_makeConstraints:^(MASConstraintMaker *make) {
                make.top.equalTo(instance.photoImageView.mas_bottom).offset(7);
                make.left.equalTo(instance);
                make.width.mas_equalTo(instance.frame.size.width);
                make.height.mas_equalTo(40);
            }];
            
            break;
            
        case ReachableViaWiFi:
            NSLog(@"連接的是WIFI");
            
            [instance removeFromSuperview];
            
            break;
            
        case ReachableVia4G:
            NSLog(@"連接的是4G");
            
            [instance removeFromSuperview];
            break;
            
        case ReachableVia3G:
            NSLog(@"連接的是3G");
            
            [instance removeFromSuperview];
            break;
            
        case ReachableVia2G:
            NSLog(@"連接的是2G");
            
            [instance removeFromSuperview];
            break;
            
        default:
            break;
    }
}

界面調(diào)用

ZSCDetectNetWork *network = [ZSCDetectNetWork sharedInstance];
 [network startDetectNetwork:self.view];

原理

就是根據(jù)網(wǎng)絡(luò)的狀態(tài)來選擇在傳入單例的view上顯示什么炉爆!

  • 有網(wǎng):顯示正常狀態(tài)
  • 無網(wǎng):顯示無網(wǎng)絡(luò)狀態(tài)

附上鏈接 點(diǎn)我傳送,給個(gè)start卧晓,好人一生平安

有用請給個(gè)喜歡芬首。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市逼裆,隨后出現(xiàn)的幾起案子郁稍,更是在濱河造成了極大的恐慌,老刑警劉巖胜宇,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耀怜,死亡現(xiàn)場離奇詭異,居然都是意外死亡桐愉,警方通過查閱死者的電腦和手機(jī)封寞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仅财,“玉大人,你說我怎么就攤上這事碗淌≌登螅” “怎么了抖锥?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碎罚。 經(jīng)常有香客問我磅废,道長,這世上最難降的妖魔是什么荆烈? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任拯勉,我火速辦了婚禮,結(jié)果婚禮上憔购,老公的妹妹穿的比我還像新娘宫峦。我一直安慰自己,他們只是感情好玫鸟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布导绷。 她就那樣靜靜地躺著,像睡著了一般屎飘。 火紅的嫁衣襯著肌膚如雪妥曲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天钦购,我揣著相機(jī)與錄音檐盟,去河邊找鬼。 笑死押桃,一個(gè)胖子當(dāng)著我的面吹牛葵萎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播怨规,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼陌宿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了波丰?” 一聲冷哼從身側(cè)響起壳坪,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掰烟,沒想到半個(gè)月后爽蝴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纫骑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年蝎亚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片先馆。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡发框,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出煤墙,到底是詐尸還是另有隱情梅惯,我是刑警寧澤宪拥,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站铣减,受9級特大地震影響她君,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜葫哗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一缔刹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧劣针,春花似錦校镐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至辣苏,卻和暖如春肝箱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背稀蟋。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工煌张, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人退客。 一個(gè)月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓骏融,卻偏偏與公主長得像,于是被迫代替她去往敵國和親萌狂。 傳聞我的和親對象是個(gè)殘疾皇子档玻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容