【问题标题】:How to send data to second viewcontroller from populated html form?如何从填充的 html 表单将数据发送到第二个视图控制器?
【发布时间】:2013-03-29 19:20:47
【问题描述】:

我已经解决这个问题几天了,这让我完全发疯了。我正在使用故事板。

我有带有 webview 的 viewcontroller1。 webview 填充一个 html 登录表单,通过一个 textField(用户名)另一个 textField(密码),然后一个按钮(提交),它完美地工作:一旦按下按钮,html 表单就会填充我的 textFields 输入。填写并提交表单后,我希望将用户发送到具有 web 视图的新视图控制器 (viewController2),我想用网站中的一些内容填充该视图控制器。对于世界,我无法找出如何将用户发送到下一个视图。

另一个细节是登录 html 表单有一个用户类型选择。因此,提交按钮发送给我的地址可能不同。如果是老师填写表格,则返回的地址将类似于“myschool/jsp/teacher/right_teacher_lesson_status.jsp”,如果是学生,则为其他地址,如果来自另一所学校,则为其他地址。

这是我试图将用户发送到包含 UIwebview2 的下一个视图的代码:

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

  if (navigationType == UIWebViewNavigationTypeFormSubmitted) {
  UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
  ViewController2 *vc = [storyboard instantiateViewControllerWithIdentifier:@"webview2"];
  NSLog(@"Allow navigation to request = %@", request);

  [self.navigationController pushViewController:vc animated:YES];

  return YES;

}

NSLog 告诉我

“允许导航请求:/myschool/jsp/teacher/right_teacher_lesson_status.jsp”

因此,如果我告诉 webview2 地址,它肯定会接收到它。但由于我不知道它是哪个学校或用户类型,我希望 webview2 从上面的代码中接收到它。请帮我。如何将信息传递到下一个视图?

【问题讨论】:

    标签: objective-c web-services webview storyboard


    【解决方案1】:

    我建议创建一个包含两个文本字段和一个选择器菜单的视图。这比网页视图好得多。如果您无法以漂亮的方式显示生成的内容,您可以使用 Web 视图,但您应该尽可能使用自定义视图优化用户体验。

    一旦你有 UIKit 元素来捕获数据,将它传递给下一个视图控制器将是微不足道的。

    话虽这么说:

    也许这确实是 HTML 编码的问题。您的“提交”按钮可以在 URL 中包含参数(GET 而不是 POST)。然后,您可以简单地将 URL 传递给您的下一个视图控制器。

    vc2.urlToLoad = request;
    

    由于您没有显示 URL,因此 get 变量无论如何都不会暴露给用户。由于您的服务器可以解释参数,您甚至不必在第二个视图控制器中解析它们(尽管如果您需要它们用于其他目的,您也可以)。

    【讨论】:

    • 我创建了一个带有两个文本字段的视图,webview 是隐藏的。在我看来,提交按钮只是一个通过 stringByEvaluatingJavaScriptFromString 发送 java 的按钮。我还可以包含 GET 函数,还是您的意思是我应该将我的 java 方法更改为 web 服务?
    猜你喜欢
    • 2016-12-22
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    相关资源
    最近更新 更多