Как разрешить увеличение страницы на iPad, но не на iPhone - PullRequest
1 голос
/ 10 января 2012

Я создаю веб-сайт, который отвечает на iPhones. Чтобы заставить экран масштабироваться до масштаба экрана, я использую метатег:

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

Недостатком является то, что этот тег также предотвращает увеличение и уменьшение iPad, есть ли способ разрешить масштабирование на iPad, но не на iPhone?

Ответы [ 3 ]

3 голосов
/ 15 ноября 2012

Я согласен, что вам лучше сделать это на стороне сервера в PHP

<?php
    // we only give the viewport if it is not an iPad:
    if(!(bool) stripos($_SERVER['HTTP_USER_AGENT'],'ipad')) { ?>
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<?php } ?>

Но вы также можете сделать это с Javascript, если вы чувствуете необходимость (но опять же, не уверены почему?не так надежно!)

if (navigator.userAgent.match(/iPad/i) != null) { } else {
document.write('[meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;  " /]');  
} 

замените [на <..., так как я не уверен, почему теги экранируются в редакторе StackOveflow. </p>

2 голосов
/ 10 января 2012

Разве вы не можете использовать какой-нибудь серверный язык (PHP, ASP и т. Д.), Чтобы определить, что представляет собой пользовательский агент браузера?В iPhone и iPad есть две разные строки пользовательских агентов.Только когда вы обнаружите, что пользовательским агентом является iPhone, вы можете установить метатег.

Типичную строку пользовательского агента можно найти, прибегая к помощи «iphone user agent string» и «ipad user agent string».

0 голосов
/ 17 января 2012

Поскольку это та же самая страница, на которую вы ссылаетесь, вы не можете реально управлять масштабированием только со стороны переднего конца.

Вы можете использовать 2 отдельных JSP, которые будут иметь соответствующие метатеги, а затем включать их динамически в зависимости от того, откуда поступает запрос через строку агента пользователя.

Опять же, вам наверняка придется использовать какую-то серверную технологию для достижения того, чего вы хотите ...

...