UIWebView установить начальный масштаб масштабирования программно при загрузке внешнего сайта? - PullRequest
6 голосов
/ 06 ноября 2011

Что я хочу сделать, это установить начальный масштаб увеличения [и в некоторых случаях смещение контента, но это менее важно] для внешнего веб-сайта. Но после того, как приложение изначально установит масштаб и смещение, пользователь должен иметь возможность их изменять, и приложение не должно мешать работе.

Некоторая соответствующая информация доступна здесь , здесь и здесь . Но, насколько я могу судить, никто не делает то, что я хочу.

Подход мета-установки выглядит многообещающе - но как бы мне установить его, если я не контролирую HTML-контент, который будет загружен?

Ответы [ 5 ]

29 голосов
/ 06 ноября 2011

Попробуйте установить начальный уровень увеличения -

[webView stringByEvaluatingJavaScriptFromString:@"document. body.style.zoom = 5.0;"];

Также не забудьте установить scalesPageToFit на NO, и все готово.

Если вы установитеДА, веб-страница масштабируется, чтобы соответствовать, и пользователь может увеличивать и уменьшать масштаб.Если НЕТ, пользовательское масштабирование отключено.Значением по умолчанию является NO.

5 голосов
/ 04 ноября 2016

Если вы хотите установить начальный масштаб для вашего веб-вида, а затем ваш веб-вид может масштабироваться. Вы можете попытаться добавить метатег в заголовок вашей HTML-строки с помощью метода протокола webViewDidFinishLoad. Вы можете изменить «начальный масштаб», «минимальный масштаб» и «максимальный масштаб», чтобы приспособиться к вашим потребностям. Выглядит так:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSString* js =
    @"var meta = document.createElement('meta'); " \
    "meta.setAttribute( 'name', 'viewport' ); " \
    "meta.setAttribute( 'content', 'width = device-width, initial-scale = 1.0,minimum-scale=1.0,maximum-scale=10.0 user-scalable = yes' ); " \
    "document.getElementsByTagName('head')[0].appendChild(meta)";
    [webView stringByEvaluatingJavaScriptFromString: js];
}
2 голосов
/ 15 декабря 2014

Почему бы и нет:

   [self.webView.scrollView setZoomScale:2.0 animated:YES];
0 голосов
/ 10 августа 2015

, если вы загружаете html и javascriptin uiwebview, тогда в области просмотра установите user-scalable = 1.0.

0 голосов
/ 12 мая 2015

лучший из найденных попробуйте добавить метатег на своей html-странице, в свой тег. Он восстанавливается в одно мгновение.Попробуйте яблочную ссылку и выберите подходящий метатег для вас.

...