0

私はこの問題に数日間取り組んできましたが、完全に頭がおかしくなりました。ストーリーボードを使用しています。

私はwebviewを持つviewcontroller1を持っています。webviewは、textField(ユーザー名)、別のtextField(パスワード)、そしてボタン(送信)を介してhtmlログインフォームに入力します。これは完璧に機能します。ボタンを押すと、htmlフォームにtextFields入力が入力されます。フォームに入力して送信したら、Web ビューを持つ新しいビューコントローラー (viewController2) にユーザーを送信して、Web サイトからいくつかのものを入力したいと考えています。世界にとって、ユーザーを次のビューに送る方法を見つけることはできません。

もう 1 つの詳細は、ログイン 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 が上記のコードからそれを受け取るようにします。私を助けてください。次のビューに情報を渡すにはどうすればよいですか?

4

1 に答える 1

0

2 つのテキスト フィールドとピッカー メニューを備えたビューを作成することをお勧めします。これは Web ビューよりも優れています。結果のコンテンツをきれいに表示できない場合は、Web ビューを使用できますが、可能な限りカスタム ビューを使用してユーザー エクスペリエンスを最適化する必要があります。

データをキャプチャする UIKit 要素を取得したら、それを次のビュー コントローラーに渡すのは簡単です。

そうは言っても:

おそらく、これは実際には HTML コーディングの問題です。「送信」ボタンは、URL に引数を含めることができます (POST ではなく GET)。次に、その URL を次のビュー コントローラーに渡すだけです。

vc2.urlToLoad = request;

URL を表示していないため、get 変数はユーザーに公開されません。サーバーは引数を解釈できるため、2 番目のビュー コントローラーでそれらを解析する必要さえありません (ただし、他の目的で必要な場合は解析できます)。

于 2013-03-29T21:14:20.990 に答える