본문 바로가기

UIWebView

UIWebView 웹페이지의 넓이제한주기 ios7으로 전환이 되면서 유니버셜이 아닌 앱이 아이패드에서 웹뷰를 띄울시에 WebView안에 웹페이지 넓이가 뷰사이즈에 맞지 않게 되는 현상을 발견했다. 이때 웹뷰사이즈를 자바스크립트로 강제로 집어 넣으면 된다. UIWebViewDelegate를 이용하여 - (void)webViewDidFinishLoad:(UIWebView *)webView 메서드를 호출할때 [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.querySelector('meta[name=viewport]').setAttribute('content', 'width=%d;', false); ", (int)webView.frame.size.. 더보기
UIWebView에 Header정보 넣기 UIWebView의 url에 디바이스의 각종 정보를 세션으로 넣어서 사용했었는데 창을 띄우고 한참 있다 웹에서 작업을 다시 시작 하면 세션정보를 잃어 버리는 상황이 발생한다. 이를테면 댓글입력 웹창에서 댓글들을 계속 보다가~~~~~~~ 보다가 ~~ 댓글을 입력 하면 일정시간이 지나 url에 넣었던 정보를 잃어 버릴때가 있다. 그래서 직접 헤더로 정보를 넣는식으로 바꾸기로했다. 방법은 우선 UIWebViewDelegate를 이용 - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; 인스턴스 메서드 안에서 .. 더보기
UIWebView의 로드된 웹페이지에 JavaScript 소스 넣기 또는 수정, 삭제 하기(target:'_blank') UIWebView에서 특정 링크에대해 개별적인 처리를 하려고했다.그 특정링크는 targer:'_blank' 속성을 가진 녀석을 safari로 링크를 돌리려고했다. 하지만 앱상에서 해당 웹뷰의 웹페이지 속성을 불러올수 있는 방법을 못찾다가 다음과 같은 방법으로 해결했다. 해당 웹페이지의 javaScript 속성을 변경하는것. - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *js = @"\ var d = document.getElementsByTagName('a');\ for (var i = 0; i < d.length; i++) {\ if (d[i].getAttribute('target') == '_blank') {\ d[i].removeAtt.. 더보기
UIWebView bounce 비활성화 하기 UIWebView는 기본적으로 UIscrollview속성을 가지고 있다. webView에서도 scrollview속성을 쓸수 있다는 말인데 그중 bounce속성을 건들여보기로했다. for (id subview in _webView.subviews) { if ([[subview class] isSubclassOfClass: [UIScrollView class]]) { ((UIScrollView *)subview).bounces = NO; } } webView의 subView 들중 그 클래스가 UIScrolleView 클래스라면 그 클래스 속성을 변경 하는 코드이다. 더보기