Статьи

iOS 5 для веб-разработчиков: мобильные обновления Safari

Разработчики iOS не единственные, кого волнует разработка iOS 5. Новая версия Safari Mobile была выпущена вместе с новейшей операционной системой, и разработчики мобильных веб-приложений теперь имеют много новых возможностей для экспериментов. , Будьте в курсе изменений в этой статье!


С каждым новым выпуском iOS Apple проделывала феноменальную работу по обновлению собственного сообщества разработчиков об изменениях в SDK. Они выпустили общий обзор изменений , официальные примечания к выпуску и даже полные API-различия .

Если бы только веб-разработчики могли быть такими счастливчиками! Информацию об изменениях в Mobile Safari было намного сложнее найти. Чтобы быть справедливым, некоторая информация была официально выпущена. Вы можете ознакомиться с обновлением Safari 5 для пользователей, обновлением высокого уровня для разработчиков и заметкой технической поддержки HT4922 . Тем не менее, ни один из этих документов специально не обсуждает изменения, относящиеся к iOS, и ни один из них не выходит на уровень технической глубины, который был бы полезен для разработчиков (если вам известен дополнительный документ, не указанный здесь, оставьте ссылку в комментариях). Такое отсутствие информации вызывает удивление хотя бы по одной причине: многое изменилось в Safari 5.1 на iOS 5 .

Цель этой статьи — предоставить максимально полный журнал изменений для Mobile Safari 5.0 до 5.1. Я попытался сделать это, просто сообщив о своих собственных экспериментах между устройствами iOS, на которых запущена каждая версия. Мое тестирование до сих пор было простым: я просто загружал HTML5Test.com для каждой версии Safari и записывал изменения.

Согласно тесту HTML 5, Mobile Safari 5.1 получил 86 баллов по сравнению с Mobile Safari 5.0.

Конечно, как видно из названия, тестовый сайт действительно тестирует только изменения HTML 5 и связанных спецификаций. В нем также явно отображается заявление об отказе от ответственности, в котором говорится, что тестируются не все новые изменения HTML 5 (в конце концов, спецификация HTML 5 все еще пишется!) И что результаты могут быть не совсем точными. Тем не менее, это похоже на эффективный метод получения быстрого обзора того, что изменилось между версиями браузера, и я рад возможности поделиться своими результатами этого теста с сообществом.


Результаты, обсуждаемые в этой статье, были получены при тестировании iPhone 3GS под управлением iOS 4.3.5 с Safari 5.0 и iPhone 4 под управлением iOS 5.0 с Safari 5.1. Эти результаты были дополнительно подтверждены на iPad с iOS 4.3.5 с Safari 5.0 и iPad 2 с iOS 5.0 с Safari 5.1. Я был рад обнаружить, что версии Safari для iPhone и iPad тестировались одинаково.

Полный пользовательский агент, отображаемый на iPhone 3GS:

Mozilla / 5.0 (iPhone; U; процессор iPhone OS 4_3_5, как Mac OS X; ru-ru) AppleWebKit / 533.17.9 (KHTML, как Gecko) Версия / 5.0.2 Mobile / 8L1 Safari / 6533.18.5

Полный пользовательский агент, отображаемый на iPad первого поколения:

Mozilla / 5.0 (iPad; U; процессор iPhone OS 4_3_5, как Mac OS X; ru-ru) AppleWebKit / 533.17.9 (KHTML, как Gecko) Версия / 5.0.2 Mobile / 8L1 Safari / 6533.18.5

Полный пользовательский агент отображается на iPhone 4:

Mozilla / 5.0 (iPhone; процессор iPhone OS 5_0, как Mac OS X) AppleWebKit / 534.46 (KHTML, как Gecko) Версия / 5.1 Mobile / 9A334 Safari / 7534.48.3

Полный пользовательский агент отображается на iPad 2:

Mozilla / 5.0 (iPad; CPU OS 5_0 как Mac OS X) AppleWebKit / 534.46 (KHTML, как Gecko) Версия / 5.1 Mobile / 9A334 Safari / 7534.48.3


Дополнительные 10 баллов были присуждены за включение как токенайзера HTML 5, так и построения дерева HTML 5 . Технические детали этого теста выходят за рамки этой статьи, но я могу сказать, что спецификация HTML 5 определяет этап токенизации, за которым следует этап построения дерева при разборе документов HTML 5. Это увеличение означает, что Safari 5.1 придерживается этого процесса, а 5.0 — нет.

В дополнение к 10 баллам, набранным в этой категории и добавленным к общему количеству, Safari 5.1 также набрал дополнительно 2 бонусных балла за добавление встроенных SVG и MathML . Следите за обеими этими технологиями!

Без изменений. Это было полностью поддержано на некоторое время.

Об изменениях в категории видео не сообщалось, но Mobile Safari по-прежнему не достигает идеального результата. Чего не хватает? Поддержка формата Ogg Theora и WebM , а также поддержка субтитров .

Без изменений. Mobile Safari уже некоторое время поддерживает audio элемент, но все еще не поддерживает WebM и Ogg Vorbis (возможно, это произойдет не скоро).

Значительное увеличение на 8 пунктов было достигнуто для этого раздела.

Новые элементы включают в себя:

Другие улучшения в этой категории включают в себя:

Это увеличение на 39 пунктов в категории форм является одним из самых интересных обновлений!

Многие из реализованных изменений применяются к атрибуту type элемента input. Новые значения атрибутов типа, которые теперь влияют на элементы управления формы, отображаемые пользовательским интерфейсом браузера, включают:

Это большая победа для веб-разработчиков, ориентированных на iOS. Mobile Safari теперь будет отображать UIPicker с различными компонентами времени, когда вы установите для атрибута type любое из значений, связанных с датой / временем, и теперь для значения диапазона отображается UISlider . Веб-приложения становятся все более нативными.

Также сообщается о поддержке этих дополнительных обновлений:

Другие изменения в этом разделе включают добавление селектора :invalid , formAction form , formAction , formEnctype , formMethod и formTarget для полей и свойства formTarget control для меток.

Баллы в этой категории были начислены за улучшения атрибутов, свойств и методов редактирования HTML. В частности, атрибуты contentEditable и designMode , свойство isContentEditable и методы execCommand , queryCommandEnabled , queryCommandIndeterm , queryCommandState , queryCommandSupported и queryCommandValue .

Без изменений. История сессий уже была доступна.

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

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

Без изменений. Мы все еще ждем полной поддержки iFrame .

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

Примечание. Геолокация не является частью официальной спецификации HTML 5, но часто ассоциируется с веб-сайтами HTML 5. Прочитайте официальную спецификацию геолокации .

Этот выпуск приближает нас к поддержке WebGL, добавив поддержку DataView .

Примечание. WebGL не является частью официальной спецификации HTML 5, но часто ассоциируется с веб-сайтами HTML 5. Читайте о WebGL здесь .

Без изменений здесь. И 5.0, и 5.1 предлагают поддержку обмена сообщениями между документами и событий, отправляемых сервером .

Без изменений на этом фронте, и это большое разочарование для многих веб-разработчиков, которые стремятся получить доступ к API FileReader и API FileSystem .

Примечание. Это не является официальной частью спецификации HTML 5.

Без изменений. Поддержка IndexedDB все еще ожидается , но, по крайней мере, Local Storage существует уже некоторое время.

Примечание. Это не официальная часть спецификации HTML 5, но тесно связанная технология, часто обсуждаемая вместе с веб-сайтами HTML 5. Ознакомьтесь с полным рабочим проектом веб-хранилища .

Тест HTML сообщает об увеличении на 15 пунктов благодаря поддержке веб-работников и общих работников .

Примечание. Это не официальная часть спецификации HTML 5, но тесно связанная технология, часто обсуждаемая вместе с веб-сайтами HTML 5. Прочитайте полный рабочий проект веб-работника .

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

Примечание. Это не является частью официальной спецификации HTML 5.

Нет намека на веб-уведомления с этим выпуском.

Примечание. Это не является частью официальной спецификации HTML 5. Читайте полный рабочий веб-уведомления .

Баллы за выбор текста и просмотр, ранее были присуждены Safari 5.0.


Веб-сайт HTML 5 Test проверяет широкий спектр проблем с поддержкой браузера, но есть множество вещей, на которые он также не обращает внимания. Примеры включают исправления ошибок, улучшения производительности и настройки CSS или JavaScript. В этом выпуске также было много таких обновлений.

Если вы хотите узнать о еще большем количестве улучшений Safari 5.1, я настоятельно рекомендую прочитать этот пост от Дэвида Кэлхуна .

Несколько дополнительных изменений, о которых уже упоминали другие пользователи в Интернете:

Это свойство CSS теперь работает так, как и ожидало бы большинство веб-разработчиков. Чтобы увидеть его в действии, посмотрите это видео на YouTube из поста Дэвида, на который есть ссылки выше:

То же, что и выше. Этот параметр был изменен, чтобы соответствовать ожиданиям разработчиков. Прочитайте пост Дэвида для всех деталей и посмотрите это видео на YouTube, которое он первоначально разместил, чтобы показать новое поведение:


Выше приведены результаты, которые я смог найти в HTML 5 Test и нескольких других ресурсах в Интернете. Если вы знаете о каких-либо других важных или интересных изменениях, которые я не смог осветить здесь, дайте мне знать в комментариях. Аналогичным образом, если вы обнаружите какие-либо ошибки, пожалуйста, не стесняйтесь исправить этот пост.


Как вы можете видеть из вышесказанного, iOS 5 определенно внесла значительное количество изменений и улучшений в Mobile Safari. В следующих публикациях Mobiletuts + расскажет о некоторых из этих новых функций, а также о многих других темах, касающихся разработки мобильных веб-приложений. Дайте нам знать, какой тип контента вы хотели бы видеть, оставив комментарий к этому сообщению. Если есть конкретное усовершенствование Safari 5.1, о котором вы хотели бы, чтобы мы рассмотрели более подробно, сообщите нам об этом ниже!