UIWebView Проблемы с JavaScript в iOS 5 (особенно window.pageYOffset и window.scrollTo) - PullRequest
1 голос
/ 16 октября 2011

Этот код UIWebView, который работал нормально в iOS 4, больше не работает в iOS 5:

// webView is UIWebView loaded with a local PDF file
NString *s = [webView stringByEvaluatingJavaScriptFromString:@"window.pageYOffset"];

Содержимое s всегда равно «0» независимо от фактической позиции webView.и

// webPosition is the desired Y scroll position
[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat: @"window.scrollTo(0, %d);", webPosition]];

Есть какие-нибудь идеи по поводу обходного пути для позиционирования веб-вида и чтения позиции, которая работает в iOS 5?

Ответы [ 2 ]

4 голосов
/ 28 ноября 2011

Вы можете использовать Scrollview в UIWebView для навигации, поскольку Javascript больше не поддерживается в IOS5: приведенный ниже код работал нормально для меня.

    [aWebView.scrollView setContentOffset:CGPointMake(x, y)];

contentOffset принимает CGPoint в качестве аргумента. Здесь x и y - целочисленные значения, представляющие scrollPosition. Если вы хотите получить текущие координаты x и y для webView, ниже приведен код, который вы можете использовать:

NSInteger x = aWebview.scrollView.contentOffSet.x;
NSInteger y = aWebview.scrollView.contentOffset.y;

Примечание: ScrollView представлен в IOS 5 и не будет работать в более ранних версиях IOS. Функция Javascript доступна для более ранних версий. Таким образом, вы можете проверить версию устройства и соответственно реализовать код.

0 голосов
/ 17 октября 2011

Вот ответ от MRL в Apple:

В iOS 5 мы представили UIScrollView UIWebView. Тебе бы лучше отключить просто сохранение и восстановление contentOffset вместо того, чтобы пытаться сделать это через JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...