UIWebView保存用户名和密码

时间:2012-09-02 01:40:02

标签: javascript objective-c xcode uiwebview

我使用javascript获得了用户名和密码,但代码不适用于所有网站。 gmail使用的是不同于脸书的身份证,许多网站也可能会这样做,那么如何让代码适用于登录的任何网站?

以下是如何获取用户名/密码:

if (navigationType == UIWebViewNavigationTypeFormSubmitted) {
    //works for gmail
    NSString *username = [WebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('Email')[0].value"];
    NSString *password = [WebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('Passwd')[0].value"];

    //works for facebook?
    //NSString *username = [WebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('email')[0].value"];
    //NSString *password = [WebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByName('pass')[0].value"];
    NSLog(@"username is %@\npassword is %@",username,password);
}

所以我只想知道如何获取用户登录的任何网站的用户名和密码,这样我就可以保存,然后在他们返回时自动填写并注销,以便轻松登录。

2 个答案:

答案 0 :(得分:2)

要获取所有文本字段,您可以像这样放置一个js查询

document.querySelectorAll("input[type='text']")

希望这有帮助。 :)

另外,要了解更多详情,请参阅this post

答案 1 :(得分:-1)

如果您希望它适用于任何网站,您将不得不做一些完全不同的事情。也许创建一个站点数组,然后将字段存储到该对象。您可以搜索每个“密码”输入,然后尝试向上移动到上一个输入,因为大多数时候它是用户名,然后是密码字段。

但是你无法让它在每个网站上工作。