본문 바로가기

프로그래밍/iOS

[iOS] 특정 주소에 html파일이 있으면 보여주고, 아니면 안보여주게 만들기

앱 개발 중 사용자 공지를 위해 html파일이 있으면 보여주고, 없으면 보여주지 않는 기능을 구현해야 했다.

그것에 대한 기술

원하는 곳에 아래 코드 작성 


// 변수 선언 및 framework 추가

#import <WebKit/WebKit.h>

@property (nonatomic, strong) WKWebView *webview;


// webView 만들기

    self.webview = [[WKWebView alloc] initWithFrame:self.view.frame];

    self.webview.navigationDelegate = self;

    [self.view addSubview:self.webview];

    // 캐시 초기화

        [[NSURLCache sharedURLCache] removeAllCachedResponses];

        [[NSURLCache sharedURLCache] setDiskCapacity:0];

        [[NSURLCache sharedURLCache] setMemoryCapacity:0];

    // 해당 주소 url 

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.mobileleader.com/bizreader/notice.html"]];

    //url 접근

    NSURLSessionConfiguration *defaultConfig = [NSURLSessionConfiguration defaultSessionConfiguration];

    NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration:defaultConfig delegate:nil delegateQueue:[NSOperationQueue mainQueue]];

    NSURLSessionDataTask *dataTask = [defaultSession dataTaskWithRequest:request completionHandler:^(NSData  *_Nullable data, NSURLResponse  *_Nullable response, NSError * _Nullable error) {

        if(error == nil && [(NSHTTPURLResponse*)response statusCode] == 200) {

            NSLog(@"있음");

            [self.webview loadRequest:request];

        else {

            NSLog(@"error = %@",[error description]);

            NSLog(@"없음");

            [self.webview removeFromSuperview];

        }

    }];

    [dataTask resume]; // dataTask 실행

추가로 만약 http를 사용할 경우 아래와 같이 예외 주소를 설정해야한다.

위 스샷에서 www.mobileleader.com을 원하는 주소로 바꿔주면 된다

키 짤린부분은 NSTemporaryExceptionAllowsInsecureHTTPLoads다