我正在制作一个应用程序,用户可以使用自定义 View 登录网站。我一切正常,从将数据从 UITextFields 传递到 webView 网站,我还可以使用此代码提交登录名和用户名
NSString *performSubmitJS = @"var passFields = document.querySelectorAll(\"input[type='submit']\"); \
passFields[1].click()";
[webView stringByEvaluatingJavaScriptFromString:performSubmitJS];
如何检查用户输入的用户名和密码是否错误?无论如何可以使用类似的东西
document.querySelectorAll
检查用户是否引入了错误的凭据?
最佳答案
我假设您的网页在您单击登录按钮时重新加载,这意味着您希望定义此委托(delegate)方法(如果您尚未定义):
- (void)webViewDidFinishLoad:(UIWebView *)webView;
并且您需要在此处重新注入(inject) JavaScript 来扫描页面以查找输入了无效密码的指示。您可以为此使用 querySelector,但您必须检查网页是否存在错误密码情况,并找到唯一显示错误密码的元素。检查类似 if(document.body.innerHTML.indexOf('无效密码') > -1) window.location = 'WRONG_PASSWORD'
之类的内容可能会更容易(将'无效密码'替换为任何内容)当您输入无效密码时,网页会显示),您可以实现:
- (BOOL)WebView:(UIWebView *)myWebView shouldStartLoadWithRequest:(NSURLRequest *)request;
并检查 URL 是否等于 WRONG_PASSWORD
,以了解用户是否输入了错误的密码并在 objc 中对其使用react。
关于javascript - 检查webView是否可以登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33724877/