2011. 12. 27. 10:31
[아이폰] 웹뷰에서 이벤트 가로채기
2011. 12. 27. 10:31 in 아이폰
참고 : http://j2enty.tistory.com/86
웹에서 발생하는 이벤트를 어플 내에서 처리하려면 UIWebViewDelegate의 webView: shouldStartLoadWithRequest: navigationType: 메서드를 이용하면 된다.
간단한 예제
1. 웹뷰가 있는 View에 <UIWebViewDelegate> 프로토콜을 추가해주고, 인터페이스 빌더에서 delegate를 연결해준다.
2. 아래의 메서드를 구현해준다.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSString *requestStr = [[request URL] absoluteString];
NSLog(@"%@", requestStr);
if([requestStr isEqualToString:@"http://m.search.naver.com/search.naver?query=&where=m&sm=mtp_hty.idx"])
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"모바일 웹 전체서비스" message:@"테스트 중입니다." delegate:self cancelButtonTitle:@"확인" otherButtonTitles:nil, nil];
[alertView show];
[alertView release];
return NO;
}
return YES;
}
3. 실행 후 네이버를 실행하여 검색 버튼을 누르면 팝업이 뜨는 것을 확인할 수 있다.
웹에서 발생하는 이벤트를 어플 내에서 처리하려면 UIWebViewDelegate의 webView: shouldStartLoadWithRequest: navigationType: 메서드를 이용하면 된다.
간단한 예제
1. 웹뷰가 있는 View에 <UIWebViewDelegate> 프로토콜을 추가해주고, 인터페이스 빌더에서 delegate를 연결해준다.
2. 아래의 메서드를 구현해준다.
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSString *requestStr = [[request URL] absoluteString];
NSLog(@"%@", requestStr);
if([requestStr isEqualToString:@"http://m.search.naver.com/search.naver?query=&where=m&sm=mtp_hty.idx"])
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"모바일 웹 전체서비스" message:@"테스트 중입니다." delegate:self cancelButtonTitle:@"확인" otherButtonTitles:nil, nil];
[alertView show];
[alertView release];
return NO;
}
return YES;
}
3. 실행 후 네이버를 실행하여 검색 버튼을 누르면 팝업이 뜨는 것을 확인할 수 있다.
'아이폰' 카테고리의 다른 글
[objective c] 간단하게 경고 팝업(UIAlertView) 띄우기 (0) | 2012.01.13 |
---|---|
UIImage to NSData 변환 (0) | 2012.01.05 |
[iphone/objective c] 어플 내의 document에 데이터 저장하기 (0) | 2011.12.20 |
[xcode] objective c와 c++코드 같이 사용하기 (0) | 2011.12.19 |
[아이폰] 탭바 숨기기 (0) | 2011.12.14 |