3

私がしようとしているのは、Xcode から Web サイトにログインすることです。JavaScript と DOM を使用して Web サイトと通信しています。これが私の問題です。ユーザー名とパスワードを Web サイトに入力してそのフォームを送信すると、ログインできますが、パスワードが有効かどうかを確認する方法がわかりません。

Web サイトでは、パスワードが無効な場合、「ログインできません」と表示されます。

これは私がこれまでに持っているものです

-(IBAction)Login:(id)sender {

   stud_pass = Username.text;
   password1 = Password.text;

   //Puts the 2 NSStrings into the websites text fields
   [webView stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat:@"document.getElementById('stud_pass').value = ('%@');", stud_pass]];
   [webView stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat:@"document.getElementById('password1').value = ('%@');", password1]];

   //Sends the form
   [webView stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit();"];


   //See if login was sucsessfull
   if (

   } else {

   }
}

これは私が立ち往生している場所であり、ログインが失敗したことをWebViewにxcodeに伝え、それに基づいてxcodeに特定の出力をさせる方法がわかりません。

4

1 に答える 1

1

コードの " " 部分で実行できると想定している基本的な問題は、ログインに成功したかどうかを示すページをロードする//See if login was sucsessfullずっと前 (機械時間) に、この関数が返されることです。メソッドはUIに関連付けられており、そのメソッドをネットワークリクエストでロックすることは、要するに悪いことなので、そうあるべきですUIWebViewIBAction

行う必要があるのは、のデリゲート メソッドのstringByEvaluatingJavaScriptFromString:1 つ(おそらく. その機能の実装は、ログインしようとしている Web サイトの構造によって大きく異なります。しかし、次のようになります。UIWebViewwebViewDidFinishLoad:

-(void)webViewDidFinishLoad:(UIWebView *)webView{
    if ([webView.request.URL.absoluteString isEqualToString:@"LoginResponceURLHere"]){
        NSString *successString = [webView stringByEvaluatingJavaScriptFromString:@"SomeJavaScriptTestOfSuccess"];
        // Check successString for known responces to test.
    }
}
于 2012-10-16T19:40:22.723 に答える