2011-09-19 41 views
2

我試圖自動填充並提交iPhone和iPad上的HTML表單,但隨後在UIWebView中查看生成的頁面。自動填充並提交HTML表單並在UIWebView中查看iOS

例如:有一個網站爲我的大學的膳食計劃添加資金,它需要您先輸入您的學號,按提交,輸入密碼,按提交,然後顯示您的餘額。

我試圖製作一個應用程序,讓你保存你的信息,按GO,然後在後臺它將填寫保存的學生號碼,點擊提交,等待生成的頁面加載,然後輸入密碼,按提交,最後用餘額顯示結果頁面。

我試過多次提交表單,但無法讓它們在UIWebView中顯示。

有沒有人有任何想法或解決方案?

感謝所有的幫助!對不起,如果這是一個愚蠢的問題。

回答

2

你可以用JavaScript來做到這一點。使用UIWebView的-stringByEvaluatingJavaScriptFromString:方法輸入文本並單擊按鈕。

+0

非常感謝!工作就像一個魅力:) – ryanwils

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]; 

}