【问题标题】:Auto fill and submit HTML form and view in UIWebView iOS在 UIWebView iOS 中自动填写和提交 HTML 表单和视图
【发布时间】:2011-09-19 01:52:22
【问题描述】:
我正在尝试在 iPhone 和 iPad 上自动填写和提交 HTML 表单,然后在 UIWebView 中查看生成的页面。
示例:有一个网站为我的大学的膳食计划添加资金,它要求您先输入您的学号,按提交,输入您的密码,按提交,然后它会显示您的余额。
我正在尝试制作一个可以让您在其中保存信息的应用程序,按 GO,然后在后台它将填写保存的学号,点击提交,等待结果页面加载,然后输入密码,按提交,最后显示余额页面。
我多次尝试提交表单,但之后无法让它们显示在 UIWebView 中。
有没有人有任何想法或解决方案?
感谢所有帮助!对不起,如果这是一个愚蠢的问题。
【问题讨论】:
标签:
iphone
html
forms
post
uiwebview
【解决方案1】:
您可以使用 JavaScript 来实现。使用UIWebView的-stringByEvaluatingJavaScriptFromString:方法输入文字并点击按钮。
【解决方案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];
}