簡體   English   中英

在 UIWebView 中打開的 HTML 頁面中自動填充用戶名和密碼

[英]Autofill username and password in an HTML page opening in UIWebView

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

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

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

嘿伙計,我希望這會幫助你在 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];
        }
    }

總之我能想到的唯一答案是 java 腳本。 比如,假設您的 UIWebView object 是 *webView。 使 class 支持 UIWebViewDelegate,然后將委托分配到適當的位置:

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

UIWebView 委托 function。

- (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 頁面,所以我真的可以在那里提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM