Существует общий способ выполнения собственных вызовов SDK по запросу Javascript. Вы можете реализовать UIWebViewDelegate и использовать метод shouldStartWithRequest для захвата запросов Javascript.
В вашем Javascript сделайте перенаправление на несуществующий локальный URL, который указывает, что вы хотели бы сделать. Например:
window.location = "doKeyboardAction";
Затем в вашем UIWebViewDelegate:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *url = request.URL;
NSString *urlString = [url.absoluteString lastPathComponent];
if([urlString isEqualToString:@"doKeyboardAction"]){
NSLog(@"Javascript says to do something.");
return NO;
}
return YES;}
Это будет захватывать все перенаправления в UIWebView, и в случае, если URL-адрес «doKeyboardAction», WebView не будет выполнять перенаправление, и в этот момент вы можете делать все, что вы хотите, например манипулировать клавиатурой ориентации.