UIWebView 保存用户名和密码

Posted

技术标签:

【中文标题】UIWebView 保存用户名和密码【英文标题】:UIWebView saving username and password 【发布时间】:2012-09-02 01:40:02 【问题描述】:

我使用 javascript 获得了用户名和密码,但该代码不适用于所有网站。 gmail 使用的 id 与 Facebook 不同,许多网站可能也这样做,那么如何使代码适用于任何登录的网站?

现在它是如何获取用户名/密码的:

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);

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

【问题讨论】:

【参考方案1】:

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

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

希望对您有所帮助。 :)

如需了解更多详情,请参考this post

【讨论】:

【参考方案2】:

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

但您无法让它适用于所有网站。

【讨论】:

我知道如何为任何网站存储它们,但获取它们是问题所在,因为大量网站的 getelementbyname 文本不同,我不知道如何为任何网站获取它,苹果不知何故,我认为海豚浏览器可以。

以上是关于UIWebView 保存用户名和密码的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 UIWebView (iOS) 自动登录 youtube 吗?

如何避免在我的 UIWebView 中询问 facebook 的用户名和密码?

UIWebview 和 facebook 墙

将 UIWebView 访问保存到当前位置

UIWebview 中的自动凭据输入 - iOS

使用swift在ios的Uiwebview中添加参数