我正在尝试在iPhone和iPad上自动填写并提交HTML表单,然后在UIWebView中查看生成的页面。
示例:有一个网站可以为我的大学的膳食计划添加资金,它要求您先输入您的学号,按提交,输入密码,按提交,然后在此之后显示您的余额。
我正在尝试创建一个应用程序,让您将信息保存在其中,按GO,然后在后台填写已保存的学号,点击提交,等待生成的页面加载,然后输入密码,按提交,然后最后显示带有余额的结果页面。
我已多次尝试提交表单,但无法在之后的UIWebView中显示它们。
有没有人有任何想法或解决方案?
感谢所有帮助!对不起,如果这是一个愚蠢的问题。
答案 0 :(得分:2)
你可以用JavaScript做到这一点。使用UIWebView的-stringByEvaluatingJavaScriptFromString:
方法输入文本,然后单击按钮。
答案 1 :(得分:2)
对于那些需要代码的人,我希望这3种方法可以提供帮助:
此方法将填充用户名字段:
- (void)completeUserFieldsForWebView:(UIWebView *)webView withUsername:(NSString *)username {
NSString *loadUsernameJS =
[NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='email']\"); \
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", username];
NSString *loadText =
[NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='text']\"); \
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", username];
[webView stringByEvaluatingJavaScriptFromString: loadUsernameJS];
[webView stringByEvaluatingJavaScriptFromString: loadText];
}
这个将填写密码字段:
- (void)completePasswordFieldsForWebView:(UIWebView *)webView withPassword:(NSString *)password {
NSString *loadPasswordJS =
[NSString stringWithFormat:@"var passFields = document.querySelectorAll(\"input[type='password']\"); \
for (var i = passFields.length>>> 0; i--;) { passFields[i].value ='%@';}", password];
[webView stringByEvaluatingJavaScriptFromString: loadPasswordJS];
}
提交表格:
- (void)clickOnSubmitButtonForWebView:(UIWebView *)webView {
NSString *performSubmitJS = @"var passFields = document.querySelectorAll(\"input[type='submit']\"); \
passFields[0].click()";
[webView stringByEvaluatingJavaScriptFromString:performSubmitJS];
}