Как разрешить масштабирование UIWebView (пробовал все) - PullRequest
3 голосов
/ 31 августа 2011

Я попробовал буквально каждый бит кода, который нашел, чтобы попытаться увеличить и уменьшить масштаб этой страницы, но, несмотря ни на что, текст по-прежнему перекрывает экран, и страница в UIWebView просто не помещается на экране.

Я пробовал инструкции здесь: http://www.iphonedevsdk.com/forum/iphone-sdk-development/9112-uiwebview-zoom-pinch.html

Я пытался добавить: webView.scalesPageToFit = TRUE;

Я установил UserInteractionEnabled.

Но, похоже, вообще ничего не работает.

Это связано с кодированием веб-страницы или с UIWebView?

Спасибо,

Джеймс

Ответы [ 4 ]

8 голосов
/ 31 августа 2011
  1. Прежде всего.Обратитесь к справочнику по классу UIWebView, вам нужно установить scalePageToFit.

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

  2. Если вы просматриваете источник страницы, вы сможете найти // meta name = "viewport" content = "width = device-width;начальный масштаб = 1,0; максимальный масштаб = 1,0; "//.

    Чтобы показать вам эффект масштабирования.Я хочу заменить его на: // meta name = "viewport" content = "width = device-width; initial-scale = 1.0; максимальный-масштаб = 5.0; масштабируемый пользователем = 1;" //.

  3. Запустите следующий код JavaScript для метода UIWebview stringByEvaluatingJavaScriptFromString: in - (void) webViewDidFinishLoad: (UIWebView *) webView {}

    function setScale(){
    var all_metas=document.getElementsByTagName('meta');
    if (all_metas){
        var k;
        for (k=0; k<all_metas.length;k++){
            var meta_tag=all_metas[k];
            var viewport= meta_tag.getAttribute('name');
            if (viewport&& viewport=='viewport'){
                meta_tag.setAttribute('content',"width=device-width; initial-scale=1.0; maximum-scale=5.0; user-scalable=1;");
            }
    
        }
    }    
    }
    
3 голосов
/ 31 августа 2011

Я посмотрел на источник страницы по ссылке, которую вы указали в комментариях, и нашел это:

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">

Это то, что «блокирует» область просмотра вниз и не позволяет масштабировать.

Здесь вы найдете полезную информацию и теги, которые лучше объяснены здесь:

https://developer.mozilla.org/en/mobile/viewport_meta_tag

1 голос
/ 31 августа 2011

Я пытался открыть вашу ссылку (dhsb.org/index.phtml?d=190350) в Safari на моем i4, и она работает, как вы описали (текст перекрывает экран и масштабирование выключено). Так что проблема в веб-сайте, а не в вашем коде.

1 голос
/ 31 августа 2011

некоторые веб-страницы являются мобильными, фиксированного размера. например вы используете iPhone Safari, чтобы открыть домашнюю страницу Google

...