Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Objective C
- 아이폰
- SQL
- 외래키
- 안드로이드
- Android
- 오라클
- 개행처리
- SEQUENCE
- 자바
- java
- Spring
- Oracle
- ibatis parameter
- 예제
- iPhone
- IO
- MVC
- ibatis 개행
- ibatis bind
- Android SDK
- IT·컴퓨터
- 스프링
- 연동
- jdbc
- 이클립스
- 설치
- zipcode
- Eclipse
- 우편번호
Archives
- Today
- Total
MisoBoy Blog...
WebView 를 활용한 웹브라우저 어플리케이션 예제 본문
// // ViewController.h // Web_View // // Created by misoboy on 12. 4. 6.. // Copyright (c) 2012년 __misoboy__. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController <UIWebViewDelegate, UIAlertViewDelegate> { // UIWebView 에 뿌려지기 위해 IBOutlet 선언 IBOutlet UIWebView *webView; // WebPage 로딩중 효과 IBOutlet UIActivityIndicatorView *spinner; // URL 입력 TextField IBOutlet UITextField *urlField; // 뒤로가기 backButton IBOutlet UIBarButtonItem *backBtn; // 앞으로 가기 ForwardButton IBOutlet UIBarButtonItem *fwdBtn; // Alert Window IBOutlet UIAlertView *alertView; } @property (strong, nonatomic) UIWebView *webview; @property (strong, nonatomic) UIActivityIndicatorView *spinner; @property (strong, nonatomic) UITextField *urlField; @property (strong, nonatomic) UIBarButtonItem *backBtn; @property (strong, nonatomic) UIBarButtonItem *fwdBtn; @property (strong, nonatomic) UIAlertView *alertView; // 웹 페이지를 읽어 들임 - (IBAction) loadUrl: (UITextField *) sender; @end
// // ViewController.m // Web_View // // Created by misoboy on 12. 4. 6.. // Copyright (c) 2012년 __misoboy__. All rights reserved. // #import "ViewController.h" #define ScreenWidth 320 #define ScreenHeight 480 @implementation ViewController @synthesize webview; @synthesize spinner; @synthesize urlField; @synthesize backBtn; @synthesize fwdBtn; @synthesize alertView; // 제한된 사이트를 둘 경우 사용 할 수 있는 메서드 //- (bool) webView : (UIWebView *) view // shouldStartLoadWithRequest:(NSURLRequest *)request // navigationType:(UIWebViewNavigationType)navigationType //{ // if( [[[request URL] host] isEqualToString:@"www.ng.com"] ) // { // return(NO); // } // return(YES); //} - (void)viewDidLoad { webView.delegate = self; // spinner 객체 생성 및 정의 spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth/2, ScreenHeight/2)]; // spinner 위치 정의 [spinner setCenter:self.view.center]; // spinner 스타일 설정 [spinner setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; [self.view addSubview:spinner]; // 초기 로드시 www.naver.com 초기화면 설정 [self goUrl:@"http://www.naver.com"]; [super viewDidLoad]; } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. } // webView 처음 로드 시작 시.... - (void) webViewDidStartLoad: (UIWebView *) webView { // updateWebBrowser 호출 [self updateWebBrowser]; } // webView 로드가 끝날 시... - (void) webViewDidFinishLoad: (UIWebView *)webView { // spinner stopAnimating [spinner stopAnimating]; } // 사용자가 입력한 주소 접속 실패시 발생 되는 메서드 - (void) webView: (UIWebView *)webView didFailLoadWithError:(NSError *)error { NSLog(@"Fail Log"); // alertView 객체 생성 및 설정 alertView = [[UIAlertView alloc] initWithTitle:@"오류" message:@"페이지 오류가 발생 하였습니다." delegate:nil cancelButtonTitle:@"확인" otherButtonTitles:nil]; // alertView Show [alertView show]; // spinner stopAnimating [spinner stopAnimating]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } - (void) loadUrl: (UITextField * ) sender { // UITextField 에서 입력한 URL 을 가져온다. NSString* urlStr = [sender text]; BOOL prefix = [ urlStr hasPrefix: @"http://" ]; // http:// 를 붙이지 않았을 경우... if (!prefix) { // http:// + 사용자가 입력한 주소를 Appending 한다. urlStr = [@"http://" stringByAppendingString: urlStr]; } // goUrl 메서드 호출 [self goUrl:(urlStr)]; } - (void) goUrl: (NSString *) urlStr { // 입력받은 URL 주소 NSString 값을 URL 로 변환한다. NSURL* url = [NSURL URLWithString: urlStr]; // URL의 페이지에 대한 정보를 가져온다. NSURLRequest * urlReq = [NSURLRequest requestWithURL: url]; // UIWebView 에 request 받은 정보를 뿌려준다. [webView loadRequest: urlReq ]; webview.scalesPageToFit = YES; } - (void) updateWebBrowser { // webView 가 현자 로딩중인지 아니지 판단 여부 BOOL loading = webView.loading; // activity 애니메이션 작동 판단 여부 BOOL animating = [spinner isAnimating]; // WebView 가 로딩중 && spinner 는 로딩X 일 경우.. if( loading == YES && animating == NO ) { // spinner startAnimating [spinner startAnimating]; } // WebView 가 로딩X && spinner 는 로딩O 일 경우... else if( loading == NO && animating == YES ) { // spinner stopAnimating [spinner stopAnimating]; } // 현재 URL 가져오기... NSURL *url = [webView.request URL]; // URL의 전체 경로 가져오기... NSString * urlStr = [url absoluteString ]; // 가져온 URL 전체경로를 UITextFiled 에 뿌려주기... urlField.text = urlStr; backBtn.enabled = webView.canGoBack; fwdBtn.enabled = webView.canGoForward; } @end
'Objective-C & Dev' 카테고리의 다른 글
Push Notification(푸시 알림 서비스) for JSP (0) | 2012.04.12 |
---|---|
Objective-C - Property & Synthesize란 무엇인가? (0) | 2012.04.07 |