我目前正在尝试找到解决此任务的方法。本质上,我有一个初始 UIView,它要求用户输入特定站点的用户名和密码,然后此信息将传递到内部有 UIWebView 的下一个视图。我想知道是否可以在网站上自动填写用户名和密码详细信息并将用户直接发送到他们在网站上的帐户页面。
谢谢。
解决方案是使用用户名和密码“伪造”登录请求并将其提供给 Web 视图。即你有一个页面 index.php 有一个用户名和密码字段。
如果您填写它们,则会使用这些参数调用页面 login.php。
你可以建立一个
NSString *urlString = @”http://www.yoursite.com/login.php?username=user&password=pass”;
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
}
这应该够了吧
假设您的网站有 div 标签,您可以使用 stringByEvaluatingJavsScriptFromString 注入。
此示例将用户名注入 twitter 注册页面。您可以通过在 viewDidLoad 中加载它来测试它:
NSString *urlString = @"https://mobile.twitter.com/signup";
NSURL *url = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
然后在 webViewDidFinishLoad 中注入用户名:
- (void)webViewDidFinishLoad:(UIWebView *)webView;
{
[webView stringByEvaluatingJavaScriptFromString:@"var field = document.getElementById('oauth_signup_client_fullname');"
"field.value='yourUserName';"];
}
抱歉,刚刚意识到您已经有了解决方案,但缺少实现。希望以上有所帮助。
顺便说一句,将动态变量添加到注入的 javascript 使用中:
- (void)webViewDidFinishLoad:(UIWebView *)webView;
{
NSString *injectedVariable = @"userNameHere";
NSString *injectedString = [NSString stringWithFormat:@"var field = document.getElementById('oauth_signup_client_fullname'); field.value='%@';", injectedVariable];
[webView stringByEvaluatingJavaScriptFromString:injectedString];
}