UIWebView捕获帖子

时间:2011-02-10 15:07:35

标签: objective-c uiwebview

我正在寻找需要在iPad上显示UIWebView的项目的起点。值得注意的是,HTML将由pad生成并显示在UIWebView中,并包含许多输入控件。

在用户完成条目之后,需要一种获取这些控件内容的方法,类似于我在服务器上的操作方式。我需要在没有实际提交的情况下在iPad上抓取这些输入的数据。

有没有人知道这种互动的起点?

4 个答案:

答案 0 :(得分:1)

您可以通过实现UIWebViewDelegate委托的shouldStartLoadWithRequest方法来实现此目的:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSData* data = request.HTTPBody;
    NSString* s = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    if([s length] == 0)
        return YES;
    else
        return NO;
}

它适用于帖子。

答案 1 :(得分:0)

这是一种方法:

  1. 为您的应用注册自定义网址方案(请参阅此处f.e。http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
  2. 当用户触摸您的保存/提交/任何按钮时,您会读出所有需要的表单字段的值,构建一个与您的URL方案匹配的网址,并使用JavaScript(window.location)重定向到此网址并使用Objective-C中的数据并执行您必须执行的操作。
  3. 示例网址可以是:myapp:// value_of_field1 / value_of_field2 / ...

    请参阅链接教程,了解如何注册自定义方案以及如何在Obj-C中检索数据。

答案 2 :(得分:0)

在之前发表的文章中,它还提到了UIWebViewDelegate方法,

        webView:shouldStartLoadWithRequest:navigationType:

在跟踪链接之前,会在委托上调用此方法。我没有尝试过,但在提交表单时可能会调用此方法。使用GET方法。比不必循环退出应用程序更容易。

答案 3 :(得分:0)

可以用简单的方式完成.. 我们知道HTTP请求包含 -

  1. 方法(GET,POST..etc)
  2. HTTP标头
  3. HTTP正文
  4. 如果它是x-www-form-urlencoded,我们可以检查Conent类型的头字段值 然后表单字段值通过它们作为键=值对发送

    然后我们可以抓住therse paires  webView:shouldStartLoadWithRequest:navigationType: - 请求参数为

    [请求HTTPBody],同样我们可以获得方法[HTTPMethod] ..等等

    如果它只是GET方法,则所有对都将在请求中。

    :)希望它有所帮助