dan*_*dan 5 html iphone controls uiwebview
我需要控制一个加载到UIWebView的网站,比如发送帖子数据和使用get请求.在每个请求之后,响应应作为字符串加载到变量中.
这样做的原因是我试图从没有公共网络API并使用基于cookie的用户身份验证的网站获取数据.所以我想登录用户,从该站点获取一些数据并显示结果.
是这样的东西吗?
编辑:我刚遇到方法stringByEvaluatingJavaScriptFromString.使用这种方法用JS控制UIWebView中的内容是否可行?就像提交Web表单并等待页面完成加载并获取响应数据一样?
编辑2:刚刚找到一个可能对ASIHTTPRequest有帮助的框架
当然有可能。只需自己编写网络代码,然后将生成的 HTML 转储到 UIWebView 中。
// Do your POST
NSURL *url = [NSURL URLWithString:"http://stackoverflow.com"];
NSString *body = @"laadeedaa";
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod: @"POST"];
[request setHTTPBody: [body dataUsingEncoding:NSUTF8StringEncoding]];
// Dump the response to the UIWebView
[webView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)
如果您想在显示响应之前对其进行处理,那么您将需要执行以下操作:
NSURLResponse *response = nil;
NSError *error = nil;
NSData *respData = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
NSString *respString = [[[NSString alloc] initWithData:respData
encoding:NSUTF8StringEncoding] autorelease];
NSString *htmlString = [self doSomethingWith:respString];
[webView loadHTMLString:htmlString baseURL:@"http://stackoverflow.com"];
Run Code Online (Sandbox Code Playgroud)
另请记住,您可以使用 JavaScript 来控制浏览器:
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2816 次 |
| 最近记录: |