【问题标题】: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];
    
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-12
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      • 2016-01-20
      • 2011-05-16
      • 1970-01-01
      • 2012-03-31
      相关资源
      最近更新 更多