2012-04-05 7 views
2

Ich speichere die vom Benutzer eingegebenen Benutzernamen und Passwortdaten auf einer in UIWebView geöffneten HTML-Seite. Nun, was ich tun möchte, ist, Benutzernamen und Passwort zurück in ihre jeweiligen Felder und senden Sie das Formular und ich möchte diese Funktionalität für fast jede Art von Website arbeiten.Benutzername und Kennwort automatisch ausfüllen in einer HTML-Seite, die in UIWebView geöffnet wird

Momentan kann ich Daten mit JavaScript in ihre jeweiligen Felder zurückversetzen. Mein Problem ist, wie man das mit Werten gefüllte Formular identifiziert, wenn es mehr als ein Formular auf einer Webseite gibt.

Auch während der Entwicklung meiner Anwendung habe ich herausgefunden, dass einige Websites aus Sicherheitsgründen das Kennwortfeld nicht ausfüllen lassen. Mit welchem ​​JavaScript-Code sollte ich diese Funktionalität implementieren?

+0

prüfen http://stackoverflow.com/questions/4772341/is-it-possible-for-a-uiwebview-to-save-and-autofill-previously-entered-form-valu – msk

Antwort

0

Kurz gesagt ist die einzige Antwort, die ich denken kann, Java Script. Etwas wie, vorausgesetzt, Ihr UIWebView-Objekt ist * webView. Machen Sie die Klasse Unterstützung für UIWebViewDelegate, und weisen Sie dann den Delegierten an einer geeigneten Stelle zu:

UIWebView Delegate-Funktion.

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

Das Vorstehende ist eine grobe Skizze, ersetzen < --- Javascript ---> mit JavaScript-Code, den Benutzernamen und das Passwort in das entsprechende Formular und senden es füllen. Wenn die geladene Seite beispielsweise JQuery verwendet, können Sie hier JQuery im Javascript verwenden.

Wie für das Javascript zu verwenden, gut, das ist völlig abhängig von der betreffenden Webseite, so dass ich wirklich helfen kann.

+0

Danke für Ihre Antwort, aber der von Ihnen angegebene Code ist bereits von meiner App implementiert..Ich brauche das Java-Skript oder JQuery-Code, der für fast jede Webseite verwendet werden kann. –

+1

Während der Entwicklung meiner App bin ich auf verschiedene Websites gestoßen Seiten, die nur erlauben, das Feld Benutzername automatisch zu füllen und das Passwortfeld leer lassen. Beispiel: Die Anmeldeseite von mail.google.com füllt nur das Feld "Nutzername" automatisch ab. –

+0

Ah möchten Sie das in der Frage dann klarstellen. – Diziet

1

Hey Mann Ich hoffe, das wird Ihnen in Web View helfen.

- (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]; 
     } 
    } 
Verwandte Themen