[英]Autofill username and password in an HTML page opening in UIWebView
我正在保存用戶在 UIWebView 打開的 HTML 頁面中輸入的用戶名和密碼數據。現在,我想要做的是將用戶名和密碼放回各自的字段並提交表單,我希望此功能能夠適用於幾乎任何類型的網站。
目前,我可以使用 JavaScript 將數據放回到各自的字段中。我的問題是當 web 頁面上有多個表單時,如何識別填充了值的表單。
此外,在我的應用程序開發過程中,我發現出於安全原因,某些 web 站點不允許填充密碼字段。 我應該使用什么 JavaScript 代碼來實現此功能?
嘿伙計,我希望這會幫助你在 Web 查看。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//For Authentication
NSString *savedUsername = @"Bapu";
NSString *savedPassword = @"Bapu123";
if (savedUsername.length != 0 && savedPassword.length != 0)
{
//create js strings
NSString *loadUsernameJS = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='text']\"); \
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", savedUsername];
NSString *loadPasswordJS = [NSString stringWithFormat:@"var inputFields = document.querySelectorAll(\"input[type='password']\"); \
for (var i = inputFields.length >>> 0; i--;) { inputFields[i].value = '%@';}", savedPassword];
//autofill the form
[webView stringByEvaluatingJavaScriptFromString: loadUsernameJS];
[webView stringByEvaluatingJavaScriptFromString: loadPasswordJS];
}
}
總之我能想到的唯一答案是 java 腳本。 比如,假設您的 UIWebView object 是 *webView。 使 class 支持 UIWebViewDelegate,然后將委托分配到適當的位置:
// In viewDidLoad or somewhere appropriate.
self.webView.delegate = self;
UIWebView 委托 function。
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSString *fillAndSubmit = [NSString stringWithFormat:@"<--- javascript --->",username,password];
NSString *output = [webView stringByEvaluatingJavaScriptFromString:fillAndSubmit];
// Any other stuff you need to do.
}
以上是一個粗略的大綱,將<--- javascript --->替換為javascript代碼,將用戶名和密碼填入相關表格並提交。 如果加載的頁面使用 JQuery,您可以在此處的 javascript 中使用 JQuery。
至於要使用的 javascript,那完全取決於相關的 web 頁面,所以我真的可以在那里提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.