日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 芯聞號 > 充電吧
[導(dǎo)讀]前言我們知道在APP開發(fā)過程中,監(jiān)聽手機當(dāng)前的網(wǎng)絡(luò)狀態(tài)還是一個很常用的方法,這里我來為大家接受一種使用AFNetWorking來監(jiān)聽當(dāng)前的網(wǎng)絡(luò)狀態(tài)的方法;網(wǎng)絡(luò)監(jiān)聽對程序開發(fā)的幫助有很多:比如下載時在不

前言

我們知道在APP開發(fā)過程中,監(jiān)聽手機當(dāng)前的網(wǎng)絡(luò)狀態(tài)還是一個很常用的方法,這里我來為大家接受一種使用AFNetWorking來監(jiān)聽當(dāng)前的網(wǎng)絡(luò)狀態(tài)的方法;網(wǎng)絡(luò)監(jiān)聽對程序開發(fā)的幫助有很多:比如下載時在不同的網(wǎng)絡(luò)狀態(tài)下使用不同下載策略、緩存策略、或者就是一個單純的提示

使用控件

在這里我使用的是AFNetWorking 3.0之前的版本,我并沒有測試過最新的3.0.4版本是否可以正常使用,但是我認為是不影響的,如果各位在測試過程中,有什么問題的話請直接私信我。

代碼實現(xiàn)

首先我們新建一個繼承與NSObject的類,編寫一個單例。

NetworkingTools.h

#import 
#import "AFNetworking.h"

@interface NetworkingTools : NSObject

+ (AFHTTPRequestOperationManager *)sharedManager;

@end

NetworkingTools.m

#import "NetworkingTools.h"
#import "AFNetworking.h"

@implementation NetworkingTools

+ (AFHTTPRequestOperationManager *)sharedManager {
    static AFHTTPRequestOperationManager * manager = nil;
    if (!manager) {
        manager = [AFHTTPRequestOperationManager manager];
    }

    return manager;
}

@end
可以看到這基本上就是一個很簡單的單例。相信大家都不存在什么問題。?

接下來會給大家看一個方法,也就是監(jiān)聽網(wǎng)絡(luò)狀態(tài)的方法,那么這里我推薦可以將這個方法在APPDelegate.m里面進行監(jiān)聽。

下面這段代碼是最關(guān)鍵的行的代碼,只要實現(xiàn)了堅聽網(wǎng)絡(luò)變化回調(diào)一般就沒有問題。

切記文章中的AFHTTPRequestOperationManager替換為AFNetworkReachabilityManager。

我的用法:

?self.manager? = [AFNetworkReachabilityManager sharedManager];

? ? //開始監(jiān)聽

?[self.manager startMonitoring];


- (void)listenNetWorkingPort{
    [[NSURLCache sharedURLCache] setMemoryCapacity:5 * 1024 * 1024];
    [[NSURLCache sharedURLCache] setDiskCapacity:50 * 1024 * 1024];

    AFHTTPRequestOperationManager * manager = [NetworkingTools sharedManager];

    // 設(shè)置網(wǎng)絡(luò)狀態(tài)變化回調(diào)
    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        switch (status) {
            case AFNetworkReachabilityStatusNotReachable:

                // 設(shè)置網(wǎng)絡(luò)請求的緩存政策
                manager.requestSerializer.cachePolicy =  NSURLRequestReturnCacheDataDontLoad;
                NSLog(@"斷網(wǎng)狀態(tài)");
                //                [UIAlertView showConfigPrompt:NSLocalizedString(@"當(dāng)前沒有網(wǎng)絡(luò),請檢查你的網(wǎng)絡(luò)設(shè)置", nil)];
                break;
            case AFNetworkReachabilityStatusReachableViaWWAN:

                // 設(shè)置網(wǎng)絡(luò)請求的緩存政策
                manager.requestSerializer.cachePolicy =  NSURLRequestReturnCacheDataElseLoad;
                NSLog(@"4G狀態(tài)");

                break;
            case AFNetworkReachabilityStatusReachableViaWiFi:

                // 設(shè)置網(wǎng)絡(luò)請求的緩存政策
                manager.requestSerializer.cachePolicy =  NSURLRequestReloadIgnoringLocalCacheData;
                NSLog(@"WiFi狀態(tài)");
                break;

            default:
                break;
        }
    }];

    // 啟動網(wǎng)絡(luò)狀態(tài)監(jiān)聽
    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
}
后記

目前為大家?guī)淼亩际切┍容^簡單的小技巧和工具,希望和大家共同交流和進步。也很想寫一遍比較充實的干貨,但是目前水平和各方面的限制,就先這樣了。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉