2012-04-05 2 views
2

UIWebView에서 연 HTML 페이지에 사용자가 입력 한대로 사용자 이름과 비밀번호 데이터를 저장합니다. 이제는 사용자 이름과 비밀번호를 각각의 입력란에 입력하고 양식을 제출하면 거의 모든 종류의 웹 사이트에서이 기능을 사용할 수 있기를 바랍니다.UIWebView에서 HTML 페이지 열기에서 사용자 이름 및 비밀번호 자동 완성

현재 JavaScript를 사용하여 해당 필드에 데이터를 다시 저장할 수 있습니다. 내 문제는 웹 페이지에 둘 이상의 양식이있을 때 값으로 채워진 양식을 식별하는 방법입니다.

또한 내 응용 프로그램을 개발하는 동안 보안상의 이유로 일부 웹 사이트가 암호 필드를 채우지 못한다는 것을 알아 냈습니다. 이 기능을 구현하기 위해 어떤 JavaScript 코드를 사용해야합니까?

+0

확인 http://stackoverflow.com/questions/4772341/is-it-possible-for-a-uiwebview-to-save-and-autofill-previously-entered-form-valu – msk

답변

0

간단히 말해서 내가 생각할 수있는 유일한 대답은 자바 스크립트입니다. UIWebView 객체가 * webView라고 가정 할 때와 비슷합니다. 클래스 지원 UIWebViewDelegate을 확인한 다음 어딘가에 적절한 대리인을 지정 :

// In viewDidLoad or somewhere appropriate. 
self.webView.delegate = self; 

있는 UIWebView 위임 기능을.

- (void)webViewDidFinishLoad:(UIWebView *)webView 
{ 
    NSString *fillAndSubmit = [NSString stringWithFormat:@"<--- javascript --->",username,password]; 
    NSString *output = [webView stringByEvaluatingJavaScriptFromString:fillAndSubmit]; 
    // Any other stuff you need to do. 
} 

위는 관련 형태로 사용자 이름과 암호를 작성하여 제출합니다 자바 스크립트 코드로 < --- 자바 스크립트 ---> 교체, 대략적인 개요입니다. 로드 된 페이지가 말하자면, JQuery를 사용하면 자바 스크립트에서 JQuery를 사용할 수 있습니다.

JavaScript는 사용하는 웹 페이지에 전적으로 의존하므로 실제로 도움이 될 수 있습니다.

+0

당신의 답변을 주셔서 감사합니다하지만 당신에 의해 주어진 코드는 이미 내 애플 리케이션에 의해 구현됩니다 .. 나는 자바 스크립트 또는 JQuery 코드가 거의 모든 웹 페이지에 대한 거기에 넣어 필요 ... –

+1

내 애플 리케이션을 개발하는 동안 나는 다양한 웹 사용자 이름 입력란 만 자동 완성되도록 허용하고 비밀번호 입력란은 비워 두는 페이지 예 : mail.google.com의 로그인 페이지는 사용자 이름 입력란 만 자동 완성됩니다. –

+0

아, 그러면 그 질문에서 분명히하고 싶을 것입니다. – Diziet

1

안녕하세요,이 사람이 웹보기에서 도움이되기를 바랍니다.

- (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]; 
     } 
    } 
관련 문제