2012-05-05 44 views
6

Tôi đã tự hỏi nếu nó có thể lấy dữ liệu POST và lưu nó khi một nút gửi được nhấn trong một UIWebView. Tôi có nên sử dụng javascript và thêm danh sách sự kiện để tôi có thể nhận được các giá trị trước khi gửi đi không? Nếu vậy, làm cách nào tôi có thể lấy lại dữ liệu cho mã của mình trong obj c? Nếu không, có cách nào dễ dàng hơn không? Cảm ơnLấy dữ liệu POST từ UIWebView

Trả lời

11

Bạn cần triển khai UIWebViewDelegate. Có một cái móc gọi là "shouldStartLoadWithRequest" được gọi bởi iOS.

Mã dưới đây.

@interface MyController<UIWebViewDelegate> 
@end 

@implementation MyController 
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request  navigationType:(UIWebViewNavigationType)navigationType 
{ 
    // do your magic 
    NSData *data = request.HTTPBody; // contains the HTTP body as in an HTTP POST request. 

    // return YES to continue to load the URL 
} 
@end 
+0

Cảm ơn, tôi đã có thể NSLog dữ liệu. Tuy nhiên, nếu tôi cũng muốn văn bản gốc của các trường được gửi, tôi có cần javascript không? – bph

+0

Tôi khuyên bạn nên chuyển văn bản/nhãn gốc dưới dạng trường biểu mẫu ẩn và sau đó trích xuất nó như một trường trong dữ liệu POST. Nếu bạn không thích điều đó thì bạn có thể sử dụng đánh giá javascript tùy ý bằng [webView stringByEvaluatingJavaScriptFromString: @ ""]; – Ash

+6

Bạn có thể nhận được văn bản của dữ liệu POST bằng phương thức ... '[[Phân bổ NSString] initWithData: mã hóa dữ liệu: NSASCIIStringEncoding]' –

Các vấn đề liên quan