2012-04-05 8 views
2

ユーザーが入力したユーザー名とパスワードのデータを、UIWebViewで開いたHTMLページに保存します。今、私がしたいのは、ユーザー名とパスワードをそれぞれのフィールドに戻してフォームを送信することです。この機能をほぼすべての種類のWebサイトで機能させたいと思います。UIWebViewで開いているHTMLページのユーザー名とパスワードの自動入力

現在のところ、JavaScriptを使用してそれぞれのフィールドにデータを戻すことができます。私の問題は、Webページに複数のフォームがある場合に、値で満たされたフォームを識別する方法です。

また、私のアプリケーションの開発中に、セキュリティ上の理由からいくつかのWebサイトではパスワードフィールドを入力できないことが分かりました。この機能を実装するためにどのJavaScriptコードを使用する必要がありますか?

+0

チェック http://stackoverflow.com/questions/4772341/is-it-possible-for-a-uiwebview-to-save-and-autofill-previously-entered-form-valu – msk

答えて

0

要するに私が考えることができる唯一の答えは、Javaスクリプトです。あなたのUIWebViewオブジェクトが* webViewであると仮定して、何かが好きです。クラスのサポートUIWebViewDelegateを行い、その後、どこか適切なデリゲートを割り当てます。

// In viewDidLoad or somewhere appropriate. 
self.webView.delegate = self; 

のUIWebViewデリゲート機能。

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSString *fillAndSubmit = [NSString stringWithFormat:@"<--- javascript --->",username,password]; 
    NSString *output = [webView stringByEvaluatingJavaScriptFromString:fillAndSubmit]; 
    // Any other stuff you need to do. 
} 

上記は、関連するフォームにユーザー名とパスワードを記入し、それを提出するjavascriptのコードで< --- javascriptの--->を置き換える、大まかな概要です。ロードされているページがJQueryなどを使用している場合は、ここでjavascriptでJQueryを使用できます。

javascriptは、問題のWebページに完全に依存しているので、私は本当に助けてくれます。

+0

あなたの答えはありがたいですが、あなたから与えられたコードはすでに私のアプリによって実装されています.iはほとんどすべてのWebページで動作するJavaスクリプトまたはJQueryコードが必要です.. –

+1

私のアプリを開発する際に、ユーザー名フィールドの自動入力のみを許可し、パスワードフィールドは空白のままにします。例:mail.google.comのログインページは、ユーザー名フィールドのみを自動入力します。 –

+0

ああ、それでは質問でそれを明確にしたいかもしれません。 – Diziet

1

こんにちは私はこれがWeb Viewであなたを助けてくれることを願っています。

- (void)webViewDidFinishLoad:(UIWebView *)webView 
    { 
      //For Authentication 
     NSString *savedUsername = @"Bapu"; 
     NSString *savedPassword = @"Bapu123"; 

     if (savedUsername.length != 0 && savedPassword.length != 0) 
     { 
     //create js strings 
     NSString *loadUsernameJS = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='text']\"); \ 
               for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", savedUsername]; 
     NSString *loadPasswordJS = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='password']\"); \ 
             for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", savedPassword]; 

      //autofill the form 
     [webView stringByEvaluatingJavaScriptFromString: loadUsernameJS]; 
     [webView stringByEvaluatingJavaScriptFromString: loadPasswordJS]; 
     } 
    } 
関連する問題