Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UIWebView捕获帖子_Objective C_Uiwebview - Fatal编程技术网

Objective c UIWebView捕获帖子

Objective c UIWebView捕获帖子,objective-c,uiwebview,Objective C,Uiwebview,我正在寻找一个需要在iPad上显示UIWebView的项目的起点。关键是HTML将由pad生成并显示在UIWebView中,并且将包含许多输入控件 现在需要的是一种在用户完成输入后获取这些控件内容的方法,类似于我在服务器上的操作。我需要在iPad上抓取输入的数据,而不需要实际提交 有人知道这种互动的起点吗?这里有一种方法: 为您的应用程序注册自定义URL方案(请参见此处f.e.) 当用户点击save/submit/Anything按钮,读取所有需要的表单字段的值时,构建一个与url方案匹配的ur

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

现在需要的是一种在用户完成输入后获取这些控件内容的方法,类似于我在服务器上的操作。我需要在iPad上抓取输入的数据,而不需要实际提交

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

这里有一种方法:

  • 为您的应用程序注册自定义URL方案(请参见此处f.e.)
  • 当用户点击save/submit/Anything按钮,读取所有需要的表单字段的值时,构建一个与url方案匹配的url,并使用JavaScript(window.location)重定向到此url,然后处理Objective-C中的数据,并执行您必须执行的操作
  • 示例URL可以是:myapp://value_of_field1/value_of_field2/...


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

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

            webView:shouldStartLoadWithRequest:navigationType:
    

    在跟随链接之前,会在委托上调用该函数。我还没有尝试过,但是在提交表单时可能会调用此方法。使用GET方法。比循环退出应用程序和返回应用程序更容易。

    这可以用简单的方法完成。。 我们知道HTTP请求包含-

  • 方法(获取、发布等)
  • HTTP头
  • HTTP正文
  • 我们可以检查Conent类型的头字段值,如果它是x-www-form-urlencoded 然后表单字段值以键=值对的形式通过它们发送

    然后我们就可以赶上他们了 webView:shouldStartLoadWithRequest:navigationType:-在请求参数中作为

    [request HTTPBody],类似地,我们可以得到方法[HTTPMethod]…等等

    如果它是简单的GET方法,那么所有对都将在请求本身中


    :)希望对您有所帮助

    您可以通过实现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;
    }
    

    它与帖子配合使用很好。

    回答得很好。我感到困惑的是读取所有所需表单字段的值。我在想,通过表单中的链接,我可以控制媒体,但如果用户输入了数据,它会出现在表单的HTML中吗?是的,如果用户在输入字段中输入了内容,您可以通过获取字段值属性来读取。示例:var firstValue=document.getElementById(“myFormField”).valueI还有这个问题。HTML是一种用于创建表单的优秀且简单的语言。我需要定义在iPad上使用的表单,但我希望我的iPad应用程序能够处理表单。比定义自己的格式和创建自定义视图容易得多。响应的格式是什么?如何从“NSString*s”中获取值?