투케이2K

108. (Objective-C/objc) openURL 사용해 tel (전화) , sms (문자) , mailto (메일) 이동 실시 본문

Objective-C

108. (Objective-C/objc) openURL 사용해 tel (전화) , sms (문자) , mailto (메일) 이동 실시

투케이2K 2022. 10. 11. 19:53

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("==================================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("==================================== \n");
    printf("\n");
    
    
    // [try catch 구문 정의 실시]
    @try {
        
        dispatch_async(dispatch_get_main_queue(), ^{
                    
            // [초기 url 변수 선언 실시]
            NSString *urlData = @"tel:010-1234-5678"; // [전화]
            //NSString *urlData = @"sms:010-5678-1234"; // [문자]
            //NSString *urlData = @"mailto:honggildung@test.com"; // [메일]

            NSURL *reqURL = [NSURL URLWithString:urlData]; // [URL 변환]
            
            
            // [UIApplication sharedApplication openURL 사용해 열기 실시]
            [[UIApplication sharedApplication] openURL:reqURL options:@{} completionHandler:^(BOOL success) {
                if( success ) {
                    printf("\n");
                    printf("==================================== \n");
                    printf("[ViewController >> testMain() :: openURL 열기 성공] \n");
                    printf("==================================== \n");
                    printf("\n");
                }
                else {
                    printf("\n");
                    printf("==================================== \n");
                    printf("[ViewController >> testMain() :: openURL 열기 실패] \n");
                    printf("==================================== \n");
                    printf("\n");
                }
            }];
            
        });

    }
    @catch (NSException *exception) {
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> catch :: 예외 상황 확인] \n");
        printf("[name :: %s] \n", exception.name.description.UTF8String);
        printf("[reason :: %s] \n", exception.reason.description.UTF8String);
        printf("==================================== \n");
        printf("\n");
    }
}
 

[결과 출력]


반응형
Comments