Внедрение objective c в UIWebView

#javascript #iphone #objective-c #forms

#javascript #iPhone #objective-c #формы

Вопрос:

Я создал форму входа в html / javascript для ввода в UIWebView в моем приложении для iPhone. Все это работает очень хорошо, и логин работает. Но когда я нажимаю кнопку входа, он переходит на ожидаемую страницу в этом представлении.

Мне было интересно, могу ли я ввести какой-нибудь objective c или с помощью javascript выполнить modalView или dismissView, чтобы при входе в систему страница переходила в приложение.

В приложении я только что сделал пользовательский интерфейс веб-страницы более удобным для пользователя.

Итак, чтобы показать, о чем я спрашиваю, я вставил некоторый код.

 NSString *myHTML = @"<form action="gotowebsite.com" onSubmit='return !validateLogin();'><input some textfield><input password field>";
 

Теперь я представляю, что код увольнения попадет в область onSubmit.

Возможно, я на правильном пути??

Приветствую Джеффа

Ответ №1:

Реализуйте UIWebViewDelegate в своем классе и при успешном входе перенаправляйте свою страницу на URL, подобный login://success когда вы перенаправляете свою страницу, UIWebView начнет загружать запрос и вызов функции, написанной ниже.

 - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
        //CAPTURE USER LINK-CLICK.
          NSURL *url = [request URL];
          NSString *urlStr =   [url absoluteString];

          if([urlStr isEqualToString:@"login://success"]){ //same url which you gave for redirection
             [self dismissModalViewControllerAnimated:YES]; // or do whatever you want to do on a successful login
          }

          return YES;   
}
 

Комментарии:

1. хорошо, я думаю, что я на правильном пути, поскольку понимаю, что вы мне говорите, однако я не уверен, как связать команду action=»» (с которой форма связана при наследовании) с командой isEqualToString. Это не значит поднимать его.

2. Поскольку вы отправляете свою форму на «gotowebsite.com » после проверки. Аналогично, когда ваша форма будет отправлять данные на url (действие), а на сервере /(действие) есть механизм аутентификации пользователя, и когда это будет сделано, просто перенаправьте после успешной аутентификации на url (login://success)