首页 文章

在UIWebView中打开的HTML页面中自动填充用户名和密码

提问于
浏览
2

我正在保存用户在UIWebView中打开的HTML页面中输入的用户名和密码数据 . 现在,我想要做的是将用户名和密码放回各自的字段并提交表单,我希望此功能适用于几乎任何类型的网站 .

目前,我可以使用JavaScript将数据放回各自的字段中 . 我的问题是当网页上有多个表单时,如何识别填充值的表单 .

此外,在我的应用程序开发过程中,我发现出于安全原因,一些网站不会填充密码字段 . 我应该使用哪些JavaScript代码来实现此功能?

2 回答

  • 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];
            }
        }
    
  • 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,这完全取决于相关的网页,所以我真的可以帮助那里 .

相关问题