2012-04-05 62 views
2

我將用戶輸入的用戶名和密碼數據保存在UIWebView中打開的HTML頁面中。現在,我想要做的就是將用戶名和密碼放回各自的字段並提交表單,我希望此功能可用於幾乎任何類型的網站。在UIWebView中打開的HTML頁面中自動填充用戶名和密碼

目前,我可以使用JavaScript將數據放回各自的字段。我的問題是當網頁上有多個表單時,如何識別填充值的表單。

此外,在我的應用程序的開發過程中,我發現有些網站出於安全原因不允許填充密碼字段。我應該使用什麼JavaScript代碼來實現此功能?

+0

檢查 http://stackoverflow.com/questions/4772341/is-it-possible-for-a-uiwebview-to-save-and-autofill-previously-entered-form-valu – msk 2012-04-05 07:17:04

回答

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的使用,以及完全依賴於有問題的網頁,所以我真的可以幫助那裏。

+0

感謝您的答案,但您提供的代碼已經實現了我的應用程序..我需要的Java腳本或JQuery代碼放在那裏幾乎適用於任何網頁.. – 2012-04-05 07:32:04

+1

在開發我的應用程序時,我遇到了各種網絡只允許自動填充用戶名字段並將密碼字段留空的頁面。例如:mail.google.com的登錄頁面只會自動填寫用戶名字段。 – 2012-04-05 07:37:14

+0

啊,您可能想在問題中明確說明。 – Diziet 2012-04-05 07:46:23

1

嘿,我希望這將幫助您在Web視圖。

- (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]; 
     } 
    } 
相關問題