Наконец, после четырех дней удара головой об iMac я нашел решение для этого.
В UIWebView недоступно window.orientation
(интересно, почему !?).Если JavaScript запрашивает значение, он получает «0», что означает, что ориентация - «портрет».
Вы можете обойти проблему, если добавите в окно установщик «ориентации».
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)req navigationType:(UIWebViewNavigationType)navigationType {
[webView stringByEvaluatingJavaScriptFromString:@"window.__defineGetter__('orientation', function(){return 90;});"];
return YES;
}
Это реализует геттер в window
, а JavaScript get возвращает его.Если вы хотите, чтобы ваше приложение реагировало на изменения ориентации интерфейса, вы можете снова установить значения в делегатах на правильные значения (-90, 0, 90 или 180).