UIWebView 클래스를 이용하다보면,
가끔 로딩한 웹뷰 컨텐츠 내에서 어떤 이벤트가 일어나는지 가로채고 싶을 때가 있습니다.
예 를 들면, Resource 폴더 내에 내가 원하는 .html 파일을 넣고, 그 폴더에서 Get 방식으로 파라미터를 특정 서버에 전달하는 경우에 정작 사용자가 만든 프로그램 내에서는 이 이벤트가 어떻게 서버로 흘러 들어가는지를 포착하기가 어려운 것이 현실입니다. UIWebView는 로딩만 할뿐, 안에 로딩된 컨텐츠가 어떻게 전달되는지는 미궁이겟죠..
그러나 역시나 이러한 이벤트에 대한 사용 가능한 함수가 있었네요.
이용법은 다음과 같습니다.
<PRE>@interface WebBrowserTutorialAppDelegate : NSObject <UIWebViewDelegate> {
일단 델리게이트 부분에 웹뷰 델리게이트를 추가해주시고요...
webView.delegate = self;
웹뷰 변수 엔트리 부분에 델리게이트를 원하는 부분에 추가를 합니다.
그리고 위에서 처럼,
shouldStartLoadWithRequest 함수를 포함해서 이용하시면 되는데요.
먼저, request라는 변수는 웹뷰에 로드된 컨텐츠에서 어떤 리퀘스트가 있을때 들어오는 변수인데,
다음과 같은 것으로 구성이 되어 있습니다.
많은 것을 알수가 있죠?
</PRE>
가끔 로딩한 웹뷰 컨텐츠 내에서 어떤 이벤트가 일어나는지 가로채고 싶을 때가 있습니다.
예 를 들면, Resource 폴더 내에 내가 원하는 .html 파일을 넣고, 그 폴더에서 Get 방식으로 파라미터를 특정 서버에 전달하는 경우에 정작 사용자가 만든 프로그램 내에서는 이 이벤트가 어떻게 서버로 흘러 들어가는지를 포착하기가 어려운 것이 현실입니다. UIWebView는 로딩만 할뿐, 안에 로딩된 컨텐츠가 어떻게 전달되는지는 미궁이겟죠..
그러나 역시나 이러한 이벤트에 대한 사용 가능한 함수가 있었네요.
이용법은 다음과 같습니다.
<PRE>@interface WebBrowserTutorialAppDelegate : NSObject <UIWebViewDelegate> {
일단 델리게이트 부분에 웹뷰 델리게이트를 추가해주시고요...
webView.delegate = self;
웹뷰 변수 엔트리 부분에 델리게이트를 원하는 부분에 추가를 합니다.
-
(BOOL)webView:(UIWebView*)webView
shouldStartLoadWithRequest:(NSURLRequest*)request
navigationType:(UIWebViewNavigationType)navigationType {
NSURL *url = request.URL;
NSString *urlString = url.absoluteString;
NSLog(urlString);
return YES;
}
NSURL *url = request.URL;
NSString *urlString = url.absoluteString;
NSLog(urlString);
return YES;
}
shouldStartLoadWithRequest 함수를 포함해서 이용하시면 되는데요.
먼저, request라는 변수는 웹뷰에 로드된 컨텐츠에서 어떤 리퀘스트가 있을때 들어오는 변수인데,
다음과 같은 것으로 구성이 되어 있습니다.
* absoluteString – An absolute string for the URL. Creating by resolving the receiver’s string against its base.
* absoluteURL – An absolute URL that refers to the same resource as the receiver.
If the receiver is already absolute, returns self.
* baseURL – The base URL of the receiver. If the receiver is an absolute URL, returns nil.
* host – The host of the URL.
* parameterString – The parameter string of the URL.
* password – The password of the URL (i.e. http://user:pass@www.test.com would return pass)
* path – Returns the path of a URL.
* port – The port number of the URL.
* query – The query string of the URL.
* relativePath – The relative path of the URL without resolving against the base URL.
If the receiver is an absolute URL, this method returns the same value as path.
* relativeString – string representation of the relative portion of the URL.
If the receiver is an absolute URL this method returns the same value as absoluteString.
* scheme – The resource specifier of the URL (i.e. http, https, file, ftp, etc).
* user – The user portion of the URL.
* absoluteURL – An absolute URL that refers to the same resource as the receiver.
If the receiver is already absolute, returns self.
* baseURL – The base URL of the receiver. If the receiver is an absolute URL, returns nil.
* host – The host of the URL.
* parameterString – The parameter string of the URL.
* password – The password of the URL (i.e. http://user:pass@www.test.com would return pass)
* path – Returns the path of a URL.
* port – The port number of the URL.
* query – The query string of the URL.
* relativePath – The relative path of the URL without resolving against the base URL.
If the receiver is an absolute URL, this method returns the same value as path.
* relativeString – string representation of the relative portion of the URL.
If the receiver is an absolute URL this method returns the same value as absoluteString.
* scheme – The resource specifier of the URL (i.e. http, https, file, ftp, etc).
* user – The user portion of the URL.
많은 것을 알수가 있죠?
</PRE>
'프로그래밍 > iOS' 카테고리의 다른 글
XCODE, 네비게이션바의 Function 목록에 함께 나오는 주석문 작성하기 (0) | 2011.11.08 |
---|---|
컨텐츠의 사이즈에 맞추어 UILabel 크기 변경하기 (0) | 2011.11.02 |
싱글톤에 관련한 간단한 팁 (0) | 2011.10.25 |
프로젝트에 프로젝트 삽입 (0) | 2011.10.25 |
UiimageView에 이미지를 적용시 이미지 공백으로 나타날 경우 (0) | 2011.10.11 |