2012-02-02 3 views
1

UIWebView 인스턴스로 iOS 앱을 개발 중입니다.UIWebView의 터치

사용자가 웹보기에 표시된 웹 페이지의 객체를 터치하는 경우 Objective C 영역에서 터치 한 객체 (예 : HTML 요소의 "id")와 관련된 메타 데이터를 추출하려면 어떻게해야합니까?

는 [I는 웹보기 터치하거나하지 여부, 내가 감동이 행동 할 수있는 한 페이지의 어떤 부분에만 관심에 관심이 아니에요.]

답변

3

당신은 아마 필요 JavaScript 토지에서 이것을하십시오. 귀하의 webview에서 javascript를 설정하여 클릭을 모니터링하십시오 (예 : element.onclick = function() {...}, 또는 jQuery를 사용하는 것이 더 쉬운 경우).

이제 앱의 기본 코드를 작성한 URL을 사용하여 호출 한 다음 webview 대리인을 사용하여 가로 챌 수 있습니다.

//in your web page, in javascript 

myDiv.onclick = function() { document.location.href = 'http://madeupdomain/' + this.id}; 

//webview delegate in cocoa 

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSURL *URL = [request URL]; 
    NSString *host = URL.host; 
    if ([host isEqualToString:@"madeupdomain"]) 
    { 
     NSString *theDivID = URL.path; 
     //now do something based on the div id value 

     return NO; 
    } 
    return YES; 
} 

이것은 본질적으로 PhoneGap과 같은 프레임 워크가 webview와 원시 코드간에 통신하는 방법입니다.