2011-08-26 4 views
0

확인이 코드는 여기에 stackoverflow에서 찾았습니다. 좋은 작동합니다. 하지만 어떻게 이벤트 정보 (날짜 시간 장소)가있는 html 페이지의 단추에서 webview로 호출 할 수 있습니까?어떻게 html 버튼 에서이 코드를 호출하고 매개 변수를 전달합니까

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

당신의 버튼을 사용하여 웹보기 나가야 할 어떤 형태의 데이터를 포함하는 POST 요청을 트리거 가지고, 그것을 추출 : Programmatically add custom event in the iPhone Calendar

#import "EventTestViewController.h" 
#import <EventKit/EventKit.h> 

@implementation EventTestViewController 

- (void)viewDidLoad { 
[super viewDidLoad]; 

EKEventStore *eventStore = [[EKEventStore alloc] init]; 

EKEvent *event = [EKEvent eventWithEventStore:eventStore]; 
event.title  = @"EVENT TITLE"; 

event.startDate = [[NSDate alloc] init]; 
event.endDate = [[NSDate alloc] initWithTimeInterval:600 sinceDate:event.startDate]; 

[event setCalendar:[eventStore defaultCalendarForNewEvents]]; 
NSError *err; 
[eventStore saveEvent:event span:EKSpanThisEvent error:&err];  
} 



- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
    [super dealloc]; 
} 

@end 

답변

0

당신은 아마이 UIWebViewDelegate 방법을 구현하여이를 수행 할 수 돌아 오는 NSURLRequest 객체에서 코드를 실행하고 NO를 반환합니다.

버튼을 사용하여 양식을 제출한다고 가정 해 봅시다. 앞서 언급 한 위임 메서드에서 양식이 보내는 요청을 캐치해야하고 NSURLRequest의 -HTTPBody 메서드의 반환 값을 구문 분석해야합니다.이 값은 웹보기의 양식 데이터가 포함 된 문자열입니다.

여기서 일어나는 일을 확인하는 가장 좋은 방법은 메서드를 구현하고 디버거에서 요청 개체를 검사하는 것입니다. 시작해야합니다 :

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSLog(@"%@", [request HTTPBody]); 
    return NO; 
} 

여기에서 결과를 살펴보고 요청 본문이 어떻게 보이는지 확인하십시오. 약간의 검색을 통해이 문자열을 더 간단하게 파싱 할 수있는 코드를 찾을 수 있습니다.

NSURLRequest에서 정보를 얻지 못한다면 다른 경로로 -stringByEvaluatingJavaScriptFromString:을 사용하여 웹 뷰에서 일부 javascript를 실행하는 것이 좋습니다. 해당 경로로 이동하면 버튼을 눌렀을 때만 알면되며 JavaScript를 사용하여 값을 추출하고 추출 할 수 있습니다.

주목할 점은 올바른 요청을 가로 채기 위해 대리인 메서드에 체크를 추가하는 것이 좋습니다. 이를 수행하는 한 가지 방법은 요청의 -URL을 보는 것입니다.

+0

1) 저에게 많은 믿음을 가져 주셔서 감사합니다.하지만 NSURLRequest 추출물에 대한 지침서를 가르쳐 주시겠습니까? 2) 동일한 코드를 호출하지만 다른 매개 변수를 보내는 버튼이 여러 개있는 경우 어떻게 작동합니까? 버튼은 html 페이지에 있습니다. – Rick

+0

내 답변이 몇 가지 추가 조언으로 업데이트되었습니다. –

+0

ok cool 시도해보기 – Rick

관련 문제