12 трюков HTML5 для мобильных устройств

  1. 01. Создание полноэкранного опыта
  2. 02. Создание веб-приложения на главном экране
  3. 03. Холст высокого разрешения
  4. 04. Истинно числовое текстовое поле
  5. 05. Отзывчивый веб-дизайн и Windows 8
  6. 07. Богатый редактор
  7. 08. Тон сафари
  8. 09. Имя значка главного экрана
  9. 10. Живые плитки для Windows Phone
  10. 11. Вкладка Зомби для iOS
  11. 12. Обращайтесь с осторожностью

Мобильный Интернет - это странный мир: десятки браузеров, версий, размеров экрана, недокументированных функций, ошибок и новых проблем. Вот почему в некоторых ситуациях нам необходимо преодолеть некоторые ограничения для достижения наших целей. Если вы изучите по крайней мере три новых трюка, читая эту статью, моя цель будет достигнута. Чтобы проверить эти трюки на вашем мобильном устройстве просто откройте этот набор тестов ,

01. Создание полноэкранного опыта

На Android Браузер - браузер по умолчанию на Android до 4.3 и отличающийся от Chrome - единственное решение - это иметь документ с высотой, по крайней мере равной высоте устройства, и использовать следующий фрагмент кода, чтобы скрыть панель URL.

window.addEventListener ("load", function () {window. scrollTo (0, 0);});

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

document.addEventListener ("touchmove", function (e) {e.preventDefault ()});

В Google Chrome, Firefox OS, Firefox для Android, BlackBerry OS 10 и Amazon Silk (браузер, разработанный для Kindle Fire) мы можем использовать стандарт Полноэкранный API от W3C.

iPhone на ios, браузер Android и Chrome на Android в полноэкранном режиме с различными реализациями. в IE11 для Windows Phone пользователь должен утвердить полноэкранный режим

Как вы уже знаете, некоторые браузеры по-прежнему работают с префиксами, поэтому для этого нам понадобится мультивендорный код:

var body = document.documentElement; if (body.requestFullscreen) {body.requestFullscreen (); } else if (body.webkitrequestFullscreen) {body.webkitrequestFullscreen (); } else if (body.mozrequestFullscreen) {body.mozrequestFullscreen (); } else if (body.msrequestFullscreen) {body.msrequestFullscreen (); }

Единственное важное ограничение, которое следует помнить при запросе полноэкранного режима, - это то, что мы должны делать это только после взаимодействия с пользователем - например, активируемого сенсорной операцией.

Apple предлагает решение для iPhone начиная с iOS 7.1, с использованием специального атрибута метатега viewport, запрашивающего минимальный пользовательский интерфейс из Safari для портрета и вообще без пользовательского интерфейса в альбомной ориентации. Этот режим недоступен на IPad ,

Чтобы включить режим минимального пользовательского интерфейса, просто используйте:

<meta name = "viewport" content = "width = devicewidth, minimal-ui">

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

Чтобы определить, включен ли минимальный режим пользовательского интерфейса:

@media (высота устройства: 568 пикселей) и (высота: 529 пикселей), (высота устройства: 480 пикселей) и (высота: 441 пикселей) {/ * минимальный пользовательский интерфейс активен * /}

02. Создание веб-приложения на главном экране

На iOS - как для iPhone, так и для iPad - и Chrome на Android мы можем получить полноэкранный режим после того, как пользователь установит значок на главном экране. Веб-приложение будет работать вне браузера, даже с точки зрения многозадачности. Для этого нам нужно добавить несколько метатегов:

<! - для стиля ios 7, значок мультиразрешения 152x152 -> <meta name = "apple-mobile-web-app-based" content = "yes"> <meta name = "apple-mobile-web- app-status-barstyle "content =" black-translucent "> <link rel =" apple-touch-icon "href =" icon-152.png "> <! - для Chrome на Android, мульти-разрешение, значок 196x196 -> <meta name = "с поддержкой мобильного веб-приложения" content = "yes"> <link rel = "ярлык" размеры = "196x196" href = "icon-196.png">

В Firefox OS и Firefox для Android мы также можем создавать веб-приложения для домашнего экрана, создавая манифест JSON и используя JavaScript API. Увидеть официальная документация Например.

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

03. Холст высокого разрешения

Canvas API - это графический интерфейс на основе растровых изображений, который работает как изображение, загруженное из файла. Поэтому, если вы создадите холст с шириной = 200, он создаст 200-пиксельное изображение. На документе он будет нарисован с шириной в 200 CSS-пикселей, независимо от разрешения.

Это означает, что на iPhone 5S размер 200-пиксельного изображения будет изменен до 400 пикселей устройства, а на устройстве Nexus 5 он будет изменен до 600 пикселей устройства - в обоих случаях теряется часть разрешения вашего изображения. Если вы хотите создать изображение с высоким разрешением, скажем, двойное от оригинального устройства со средним разрешением, можно использовать следующий прием:

<canvas width = "400" height = "400" style = "width: 200px; height: 200px"> </ canvas> <script> document.queryselector ("canvas"). getContext ("2d"). scale (2 , 2); </ Скрипт>

Помните, что увеличение размера вашего холста также увеличит объем используемой памяти и ЦП, необходимых для создания рисунков, поэтому мы должны делать это только тогда, когда уверены, что имеем дело с устройством с высоким разрешением.

04. Истинно числовое текстовое поле

Я уверен, что вы уже знаете все новые типы HTML5 для элемента ввода, такие как type = email , которые запускают различные виртуальные клавиатуры на сенсорных устройствах. В то время как на Android и Windows Phone вы получите полностью цифровую клавиатуру при использовании type = number , вы можете не осознавать, что на iOS вы не получите именно этого.

Если вы хотите получить полностью цифровую клавиатуру на ios, вам нужно добавить значение шаблона в элемент ввода. По умолчанию тип номера позволит пользователю печатать буквы

Если вы добавите атрибут pattern = "[0-9] *", то вы получите действительно цифровую клавиатуру в iOS, как и в других операционных системах:

<input type = "number" pattern = "[0-9] *">

Вы также можете использовать этот трюк с type = "password", чтобы получить цифровую клавиатуру для текстового поля PIN.

<input type = "password" pattern = "[0-9] *">

05. Отзывчивый веб-дизайн и Windows 8

Если вы работаете с адаптивными веб-сайтами, вы можете подумать, что достаточно определить метатег мобильного окна просмотра и различные точки останова с помощью медиазапросов CSS. Однако есть одна конкретная ситуация, которая требует немного больше работы: Windows 8.x с Internet Explorer, который работает в полноэкранном режиме (ранее известный как режим Metro).

В режиме IE для Windows 8.x вы можете поделиться экраном с другими приложениями - в этом случае по умолчанию ваш сайт будет уменьшен, даже если у вас есть отзывчивые точки останова на CSS

В Windows 8 и 8.1 веб-сайт, открытый в этом браузере, может делиться экраном с другими приложениями в полноэкранном режиме, включая классический рабочий стол. В этом случае, когда доступная ширина меньше 1024 пикселей, IE применяет мобильное поведение, которое уменьшает масштаб веб-сайта и не применяет ваш адаптивный код.

Чтобы решить эту проблему, мы можем использовать объявление CSS Viewport для медиа-запроса, например:

экран @media only и (max-width: 400px) {@ -ms-viewport {width: 320px; }}

Вам сказали, что с помощью <input type = datetime> вы получаете выбор даты и времени в большинстве браузеров. И так было на мобильных устройствах до iOS 7 и Chrome 26 для Android. Начиная с тех версий, этот вид управления формой отображается как текстовые поля по умолчанию.

Однако вы можете не знать, что средство выбора даты и времени все еще доступно в тех браузерах, которые используют type = datetime-local , поскольку это изменение не было должным образом объявлено или задокументировано поставщиками браузера.

<input type = "datetime-local">

07. Богатый редактор

В HTML5 есть новый логический атрибут для элементов HTML: ContentEditable. Мы можем использовать этот атрибут в любом элементе HTML, включая <div> , <table> или <ul> .

Когда пользователь нажимает на эти элементы, появляется виртуальная клавиатура, и пользователь сможет редактировать ее, даже если она включает в себя расширенный HTML - например, добавление новых элементов списка с помощью клавиши Enter Virtual. Чтобы сохранить обновления, вы должны проверить атрибут innerHTML элемента.

Чтобы сохранить обновления, вы должны проверить атрибут innerHTML элемента

С ContentEditable мы можем создать богатый редактор для iOs, Android, Windows Phone и других устройств, используя виртуальную клавиатуру на любом элементе HTML

На iOS пользователь сможет применять жирный шрифт, курсив и подчеркивание в контекстном меню выбора.

<ul contenteditable> <li> статический элемент в hTML </ ul>

08. Тон сафари

Начиная с iOS 7, Safari для iPhone и iPod touch имеет оттенок цвета, который скрывается за полупрозрачным пользовательским интерфейсом Safari. Когда ваша страница загружается, Safari смотрит на цвет фона вашего сайта, чтобы определить этот оттенок. Нет никакого способа определить этот оттенок программно или через метатег, но у меня есть хитрость, чтобы вы могли выбрать другой цвет для оттенка и вашего фона.

тело {/ * для оттенка сафари * / background-color: синий; / * для цвета фона тела документа * / background-image: линейный градиент (снизу, красный 0%, красный 100%); }

тело {/ * для оттенка сафари * / background-color: синий;  / * для цвета фона тела документа * / background-image: линейный градиент (снизу, красный 0%, красный 100%);  }

Если фон вашего тела красный, пользовательский интерфейс Safari на iPhone будет окрашивать панели инструментов в тот же цвет. Совет 08 описывает трюк для изменения цвета (справа)

09. Имя значка главного экрана

Когда вы добавляете веб-сайт на домашний экран на iOS, Chrome на Android или прикрепляете веб-сайт к плитке на Windows Phone, ваш HTML-контент <title> будет использоваться для имени значка. Из-за методов SEO, мы знаем, что наш заголовок не совсем подходит для домашнего экрана на наших мобильных телефонах.

Существует недокументированный метатег в Safari на iOS, который очень помогает нам в определении имени иконки:

<meta name = "apple-mobile-web-app-title" content = "Myname">

На планшетах Windows Phone и Windows 8.x мы можем определить заголовок плитки, используя:

<meta name = "application-name" content = "Myname">

К сожалению, нет способа определить имя иконки в Chrome на Android программным способом.

К сожалению, нет способа определить имя иконки в Chrome на Android программным способом

В Windows 8+ и Windows Phone 8.1+ пользователь может прикрепить веб-сайт к начальному экрану. Мы можем настроить внешний вид и обновить его содержимое с помощью мета-тегов.

10. Живые плитки для Windows Phone

Пользователь может закрепить веб-сайты из IE на начальном экране Windows 8.x, и эта функция была добавлена ​​в последние телефоны Windows. Вы можете преобразовать эту плитку на главном экране в живую плитку, обновляя информацию и сохраняя значок, даже если ваш веб-сайт больше не открыт.

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

<meta name = "msapplication-TileImage" content = "tile-background.png"> <meta name = "msapplication-TileColor" content = "# FF0000">

Вы можете создать метатеги для своей Live Tile, используя онлайн-инструмент Build My Pinned site. Если у вас есть канал RSS, он импортирует его и даст вам код для копирования и вставки

Для жизнеспособности плитки мы можем определить URI опроса значка (совместимый с IE10) и / или URI опроса уведомления (совместимый с IE11). Первый может обновлять значок и непрочитанные элементы на плитке, а второй может приносить новости и информацию, которые будут отображаться в анимации Live Tile. В обоих случаях мы также можем определить частоту опроса.

<meta name = "msapplication-badge" content = "quency = 60; polling-uri = http: // host / badge.xml "> <meta name =" msapplication-уведомление "content = "quency = 30; polling-uri = http: // host / live.xml ">

Есть хороший Live Tile создатель доступны на сайте Windows, и Плагин WordPress доступно, что сделает работу за вас.

11. Вкладка Зомби для iOS

Браузеры на мобильных устройствах могут выглядеть как их двоюродные братья на настольном компьютере, но их поведение далеко не одинаково. Рассмотрим Safari для iPad: в нем есть вкладки. Однако если вы откроете три вкладки в Facebook, Twitter и Gmail, вы будете получать обновления только с активной вкладки. Каждая неактивная вкладка заморожена. Это означает, что JavaScript не выполняется и нет способа получать обновления, к которым мы привыкли на рабочем столе.

С помощью этого трюка мы можем взять неактивную вкладку или окно и заставить его ожить. Зачем? Ну, мы можем получать обновления с сервера, и если есть что-то действительно важное, мы можем изменить заголовок вкладки, чтобы предупредить пользователя (только для iPad), или мы можем просто использовать диалоговое окно с предупреждением, чтобы прервать пользователя, пока он находится на другая вкладка или окно.

Ну, мы можем получать обновления с сервера, и если есть что-то действительно важное, мы можем изменить заголовок вкладки, чтобы предупредить пользователя (только для iPad), или мы можем просто использовать диалоговое окно с предупреждением, чтобы прервать пользователя, пока он находится на другая вкладка или окно

Некоторые мобильные браузеры, такие как Safari на iPad, выглядят как настольные браузеры, но активна только активная вкладка. Взлом Zombie Tab решает эту проблему

Для взлома необходимо использовать классический метатег обновления, который запускает операцию перезагрузки страницы. Когда страница заморожена, Safari все равно сохранит этот метатег и восстановит это окно. Но нам также нужно приостановить операцию перезагрузки, пока мы находимся в активном окне. Для этого мы сдвигаем метатег обновления каждые x секунд (код, который не срабатывает при замораживании).

<meta http-equ = "refresh" content = "2"> <script> var mr = document.queryselector ("meta"); setInterval (function () {mr.content = mr.content;}, 1000); </ Скрипт>

Будьте осторожны, используйте это только тогда, когда вам это действительно нужно. Я не буду нести ответственность за фоновые сайты, раздражающие вас, пока вы спокойно читаете статью.

12. Обращайтесь с осторожностью

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

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

Слова : Максимилиано Фиртман Иллюстрация : Бен Фернли

Эта статья первоначально появилась в сетевом выпуске журнала 256.

Похожие

Наконец-то появился трек активации Microsoft Windows 7 Ultimate
... для предварительной активации Windows, предназначенной для корпоративного лицензирования OEM-изготовителями, такими как Lenovo и Dell, Windows 7 использует OEMID (идентифицированный таблицей BIOS SLIC) для идентификации компьютеров OEM для предварительной активации, взломщиков теперь разработали автоматизированные утилиты (как показано выше), которые используют OEM-ключ Lenovo и OEMID для фальсификации идентификации в качестве OEM-системы, позволяющей
Windows Vista Ultimate. Дополнительные возможности Windows Ultimate. Windows Anytime Upgrade
Думайте о Vista Home Premium как о сыне XP Home. Теперь представьте Vista Ultimate как результат сочетания XP Pro (Mother) и XP Plus Pack (Father). Проблема в том, что эти «дети» Ultimate Extras являются медленными разработчиками, и на самом деле, многие из дополнений Vista еще не выпущены. «Никаких компромиссов» - это ключевая фраза Microsoft для выпуска Vista Ultimate, и эта фраза подводит итог ситуации; если вы читаете о функции Vista, то можете быть уверены, что она есть в Ultimate
Как полностью отключить Wi-Fi и Bluetooth в iOS 11 для всех сетей и устройств
Apple изменилась поведение переключателей Wi-Fi и Bluetooth в обновленном Центре управления iOS 11
Как определить, есть ли у вас 32-битный или 64-битный процессор
... Windows, Mac и Linux. Windows 8 и 10 Чтобы определить тип вашего процессора в Windows 8 и Windows 10: в Окно поиска Windows , введите информацию о системе и выберите значок Информация о системе. Или, если у вас нет окна поиска (потому что вы его отключили): Откройте окно проводника, нажав клавишу Windows + E. Слева щелкните
Как конвертировать документы Word в HTML
Если у вас был веб-сайт некоторое время, скорее всего, на вашем сайте есть несколько документов Microsoft
Как создать анимацию в Phaser с текстурным атласом
... для игры, которую я создаю с использованием текстурного атласа: В этом уроке я расскажу, как использовать атлас texure для анимации, так что если вы хотите немного больше фона для спрайтов и как мы можем использовать их для анимации, посмотрите
Советы и хитрости
... значка клавиатуры появляется ярлык для текущего языка, например «DEU» для немецкого языка или «TUR» для турецкого языка. ( db@ct.de ) Windows: переименовать вместо двойного щелчка ¯ ??? Мне снова и снова случается, что программа или файл не открываются после двойного щелчка, но вместо этого Windows предлагает мне переименовать файл. Как я могу предотвратить это? ¯ !!! Это
Решения для Windows Server 2012 (R2) расширяют выделенный том
В Windows Server 2012 и 2012 R2 изменение размеров разделов или перераспределение жесткого диска стало намного проще, чем в предыдущих версиях Windows, таких как Windows Server 2003 и 2000. Как Windows Server 2012, так и 2012 R2 R2 оснащены улучшенным средством управления дисками, который позволяет изменять размер раздела путем сжатия или расширения тома, а также создавать новые разделы из нераспределенного пространства и т. д. Однако все еще существуют некоторые недостатки, которые потребуют
Обновление для Windows 7 по борьбе с пиратством уже доступно, пираты все еще могут его избежать
... windows-7-po-borbe-s-piratstvom-uze-dostupno-piraty-vse-ese-mogut-ego-izbezat-1.jpg" alt="Windows 7 антипиратское обновление, которого боялись пираты в настоящее время распространяется как KB971033 через Центр обновления Windows, обновление технологий активации Windows (WAT) помечено как важное и имеет функции обнаружения более 70 известных Windows 7 активация взломов и взломов информирование пользователей об их подлинном статусе копирования, предпринимающих действия при обнаружении пиратства">
Нет сомнений в том, что истинная сила операционной системы Android заключается в свободе возможности исполь...
Нет сомнений в том, что истинная сила операционной системы Android заключается в свободе возможности использовать различные пользовательские ПЗУ - микропрограммы, которые были приготовлены непосредственно с портала AOSP, или которые отличаются от стандартных по функциям или тем которые включают в себя элементы из других устройств. Это не только вносит разнообразие в ваш скучный смартфон или планшет, но и дает возможность использовать его в полной мере. Однако не все пользовательские ПЗУ могут
Как просмотреть исходный код HTML в Microsoft Word
Обновлено: 24.01.2008 от Computer Hope Microsoft Word поддерживает возможность сохранения любого документа в виде веб-страницы. Однако, хотя можно сохранить документ в виде веб-страницы, нет способа просмотреть исходный код в самых последних версиях Microsoft Word. Microsoft Word 2007, 2010 и более поздние версии Как упомянуто выше, нет никакого

Комментарии

Сценарий: Как действительный пользователь, я хочу ответить на вопрос приложения, я жду текст «Как лучше всего протестировать приложение на сотне устройств?
Сценарий: Как действительный пользователь, я хочу ответить на вопрос приложения, я жду текст «Как лучше всего протестировать приложение на сотне устройств?» Затем я нажимаю кнопку-переключатель 0 Затем нажимаю кнопку-переключатель 1 Затем нажимаю кнопку-переключатель 2 Затем я вводю текст «Простой тест» в поле с идентификатором «editText1» Затем нажимаю вид с идентификатором «Кнопка1» Шаги обычно начинаются с одного из указанных ключевых слов, затем, когда и или, но. Тем не менее,
Таким образом, возникает вопрос: «Доверяете ли вы Microsoft снабдить Windows Ultimate Extras новыми апплетами, гизмо и функциями»?
Таким образом, возникает вопрос: «Доверяете ли вы Microsoft снабдить Windows Ultimate Extras новыми апплетами, гизмо и функциями»? Во многих отношениях, если вы покупаете с Ultimate Edition сейчас, то вы верите, что у Microsoft есть много новых полезных полезностей в процессе разработки. Если у вас есть сомнения в том, что Ultimate стоит дополнительных денег, купите один из более дешевых выпусков и воспользуйтесь Windows Anytime Upgrade, когда увидите обзоры «убийственных» приложений, доступных
Почему «Расширение тома» недоступно в Windows 2012?
Почему «Расширение тома» недоступно в Windows 2012? «Расширение тома» управления дисками работает только с непрерывным нераспределенным пространством за целевым разделом, который вы хотите расширить, а это означает, что нераспределенное пространство должно быть немедленно расположено с правой стороны. Если нет, Расширить том будет серым и, следовательно, недоступным.

Зачем?
De ) Windows: переименовать вместо двойного щелчка ¯ ?
Как я могу предотвратить это?
Сценарий: Как действительный пользователь, я хочу ответить на вопрос приложения, я жду текст «Как лучше всего протестировать приложение на сотне устройств?
Таким образом, возникает вопрос: «Доверяете ли вы Microsoft снабдить Windows Ultimate Extras новыми апплетами, гизмо и функциями»?
Почему «Расширение тома» недоступно в Windows 2012?