Изменения WebKit и Safari в iOS 11
В iOS 11 представлена новая версия веб-браузера Safari — Safari 11.0, которая включает изменения в WebKit и SafariServices. В этом руководстве рассматриваются эти изменения.
SafariServices
SFSafariViewController был представлен в iOS 9 как вариант для отображения веб-содержимого или проверки подлинности пользователей из приложения. Дополнительные сведения о его функциях см. в руководстве веб-представлений .
В iOS 11 появились обновления стилей для контроллера представлений Safari, что обеспечивает пользователям более простое взаимодействие между приложением и Интернетом. Например, удаление адресной строки теперь позволяет контроллеру представлений Safari использовать браузер в приложении, а не мини-браузер. Вы также можете настроить цветовую схему в соответствии с цветовой схемой вашего приложения, задав preferredBarTintColor свойства и PreferredControlTintColor :
sfViewController.PreferredControlTintColor = UIColor.White; sfViewController.PreferredBarTintColor = UIColor.Purple;
В следующем фрагменте кода полоски отображаются фиолетовым и белым цветом, как показано на следующем рисунке:

Кнопку Закрыть, представленную в контроллере представления Safari, также можно изменить, задав свойству DismissButtonStyle Done значение , Close или Cancel :
sfViewController.DismissButtonStyle = SFSafariViewControllerDismissButtonStyle.Close;

Это значение можно изменить во время SFSafariViewController представления.
В зависимости от содержимого, отображаемого в контроллере представлений Safari, может потребоваться убедиться, что строки меню не сворачиваются при прокрутке пользователя. Это можно сделать, задав новому BarCollapsedEnabled свойству значение false :
var config = new SFSafariViewControllerConfiguration(); config.BarCollapsingEnabled = false; var sfViewController = new SFSafariViewController(url, config);

Apple также внесла изменения в конфиденциальность в safari View Controller в iOS 11. Теперь данные браузера, такие как файлы cookie и локальное хранилище, существуют только для каждого приложения, а не для всех экземпляров контроллера представлений Safari. Это обеспечивает конфиденциальность действий браузера пользователей в приложении.
В iOS 11 также добавлены SFSafariViewController дополнительные функции, такие как поддержка перетаскивания URL-адресов и поддержка window.open() для. Дополнительные сведения об этих новых функциях см. в документации apple SFSafariViewController.
WebKit
WKWebView был представлен в составе WebKit в iOS 8 в качестве средства отображения веб-содержимого для пользователя. Это гораздо более настраиваемый, чем SFSafariViewController , что позволяет создать собственную навигацию и пользовательский интерфейс.
Компания Apple представила три main улучшения для WKWebView iOS 11:
- Возможность управления файлами cookie
- Фильтрование содержимого
- Загрузка пользовательских ресурсов
Управление файлами cookie осуществляется с помощью нового WKHttpCookieStore класса, который позволяет добавлять и удалять файлы cookie, получать все файлы cookie, хранящиеся в WKWebView, и наблюдать за изменениями в хранилище файлов cookie.
Фильтрация содержимого позволяет управлять типом содержимого, который будет видеть пользователь, позволяя убедиться, что он является безопасным, понятным для семьи и, при необходимости, доступен только для определенной группы пользователей. Это реализуется с помощью нового WKContentRuleList класса, предоставляя пары триггеров и действий в ФОРМАТЕ JSON. Дополнительные сведения об этих триггерах и действиях см. в руководстве Apple по правилам блокировки содержимого .
IOS 11 теперь позволяет настраивать WKWebView настраиваемую загрузку ресурсов для веб-содержимого. Это реализуется через IWKUrlSchemeHandler интерфейс , который позволяет обрабатывать схемы URL-адресов, которые не являются собственными для веб-комплекта. Этот интерфейс имеет метод запуска и остановки, который необходимо реализовать:
public class MyHandler : NSObject, IWKUrlSchemeHandler < [Export("webView:startURLSchemeTask:")] public void StartUrlSchemeTask(WKWebView webView, IWKUrlSchemeTask urlSchemeTask)< // Implement a IWKUrlSchemeTask here var response = new NSUrlResponse(urlSchemeTask.Request.Url, "text/html", ContentLength, null); urlSchemeTask.DidReceiveResponse(response); urlSchemeTask.DidReceiveData(someData); urlSchemeTask.DidFinish(); >[Export("webView:stopURLSchemeTask:")] public void StopUrlSchemeTask(WKWebView webView, IWKUrlSchemeTask urlSchemeTask) < throw new NotImplementedException(); >>
После реализации обработчика используйте его для задания SetUrlSchemeHandler свойства в WKWebViewConfiguration . Затем загрузите URL-адрес объекта, использующего пользовательскую схему:
var config = new WKWebViewConfiguration(); config.SetUrlSchemeHandler(new MyHandler(), "xamarin-asset"); webView = new WKWebView (View.Frame, config); webView.LoadRequest (new NSUrlRequest("xamarin-asset://xamarin.com"));
WebKit
WebKit это фреймворк который показывает правильно отформатированные веб-страницы на основе их разметки. Apple Safari и большинство мобильных браузеров зависят от Webkit (Webkit это очень портативный и легко настраиваемый фреймворк).
WebKit начал жизнь как разветвление библиотек KDE’s KHTML и KJS, и с тех пор много частных лиц и компаний внесли свой вклад в его развитие (включая: KDE, Apple, Google, и Nokia).
WebKit это торговая марка Apple, а сам фреймворк раздаётся под BSD-образной лицензией. Однако, 2 важных компонента попадают под лицензию LGPL (en-US): это WebCore — визуальная библиотека и движок JavaScriptCore.
Читайте также
Технический справочник
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 12 нояб. 2023 г. by MDN contributors.
Your blueprint for a better internet.
5 полезных функций Safari в iOS 16, о которых вы могли не знать
Любой браузер для iOS — по сути своей является Safari. Дело в том, что Apple требует от разработчиков Chrome, Opera, Firefox и даже Tor в обязательном порядке использовать её движок WebKit, лежащий в основе штатного браузера. Несмотря на это, Сафари всё равно остаётся выбором большинства владельцев iPhone. Сказывается не только общая легковесность и быстродействие, но и более широкий набор функциональных возможностей, которые предлагает фирменный веб-обозреватель Apple. Правда, далеко не все знают, что это за возможности. Восполняем пробел.

В Сафари много неявных или скрытых функций
Возможно, часть из этих фишек вам уже знакома. Однако нет никаких сомнений, что большинство пользователей, которые не только не оставляют комментарии к нашим статьям, но даже скорее всего не зарегистрированы у нас на сайте, о них не слышали. Поэтому, даже если что-то покажется вам примитивным, не спешите критиковать нас. Для кого-то данный материал непременно будет полезным. За наводку спасибо ребятам из iPhones.ru.
Как открыть недавно закрытые вкладки в Сафари
Пусть бросит в меня камень тот, кто ни разу не закрывал нужную вкладку по чистой случайности, а потом не мог найти её, чтобы перезапустить. Даже у пользователей Safari, каким бы логичным ни казался этот браузер, такое тоже происходит. И, если не знать, как открыть нужную страницу заново, то вот так с наскока разобраться в том, как это происходит, может оказаться довольно сложной задачей.
Впрочем, в Safari по умолчанию предусмотрен специальный раздел, где будут сохраняться закрытые ранее вкладки с возможностью последующего открытия заново:
- Запустите Safari у себя на iPhone или iPad;
- Перейдите в раздел с открытыми вкладками;

Сначала нужно создать новую группу вкладок
- Нажмите на пункт с количеством открытых вкладок;
- Выберите «Новая группа пустых вкладок» и озаглавьте её;

Для каждой группы вкладок можно создать свою папку с недавно закрытыми
- Пролистайте стартовую страницу вниз и нажмите «Изменить»;
- Включите тумблер «Недавно закрытые вкладки» — теперь они всегда будут появляться на стартовой странице.
Как скопировать текст с фото на Айфоне
Разработчики Apple уже давно научили iPhone выделять, копировать и даже переводить текст на фотографиях. Чаще всего соответствующий механизм срабатывает практически безотказно на самых разных снимках. Но немногие знают, что в iOS 16 он заработал даже в Safari, распознавая текст на любых изображениях в реальном времени без необходимости скачивать их на устройство.
- Откройте Safari у себя на iPhone или iPad;
- Найдите картинку с текстом, приблизьте, если нужно и задержите палец на текстовой области;

Safari поддерживает распознавание в том числе русского языка
- Когда на картинке появится курсор, выделите нужный фрагмент текста;
- Его можно скопировать, найти по нему релевантные запросы в интернете, а может перевести, включив переводчик в Safari.
Как вырезать объект с фото в iOS 16
По аналогии с выделением текста Safari в iOS 16 предлагает возможность вырезать конкретный объект с фотографии. Несмотря на то что Apple утверждает, что этот механизм работает практически с любыми изображениями, на самом деле это не совсем так. Чтобы iOS распознала объект и смогла правильно его вырезать, необходимо, чтобы он был не обрезан, имел достаточно большой размер и желательно был сфотографирован, а не нарисован.
⚡️ПОДПИШИСЬ НА НАШ ЧАТИК В ТЕЛЕГРАМЕ. ТАМ ТЕБЕ ОТВЕТЯТ НА ЛЮБЫЕ ВОПРОСЫ ОБ АЙФОНАХ И НЕ ТОЛЬКО
- Откройте Safari у себя на iPhone с iOS 16;
- Найдите любую фотографию в интернете;
- Нажмите пальцем на картинку и удерживайте;

Если объектов на фото несколько и они расположены рядом друг с другом, то скопируются все сразу
- В выпадающем меню выберите «Скопировать субъект»;
- Вставьте его в мессенджер или в другое приложение, чтобы посмотреть или кому-то отправить.
Как обойти капчу на iPhone
Ещё на презентации iOS 16 на WWDC 2022 компания Apple анонсировала появление механизма, позволяющего пропускать капчу на сайтах. Капча — это те самые символы, которые веб-ресурсы просят вас вводить для подтверждения того, что вы не робот. В Купертино не меньше нашего понимали, как это раздражает, поэтому сделали так, что вводить капчу нам больше не придётся. Ну, почти.
⚡️ПОДПИСЫВАЙСЯ НА НАШ КАНАЛ В ДЗЕНЕ И ЧИТАЙ ЛУЧШИЕ СТАТЬИ НАШИХ АВТОРОВ, ПОКА ЕЩЁ МОЖНО
- Откройте «Настройки» у себя на iPhone;
- Перейдите в свой профиль на самом верху;

Обычно пропуск капчи настроен по умолчанию, но, если нет, вы знаете, что делать
- Откройте вкладку «Пароль и безопасность»;
- Включите пункт «Автоподтверждение» — теперь на большинстве сайтов капча вас не побеспокоит.
Как открыть ссылку в новой вкладке быстро
Владельцы iPad знают, насколько удобно порой бывает управляться с устройством жестами. Планшеты Apple поддерживают почти все те же свайпы и комбинации движений, что и фирменные трекпады компании. Но как минимум один жест перекочевал и в iPhone. Это нажатие двумя пальцами, которое позволяет открыть ссылку сразу в новой вкладке, избегая лишних действий. Правда, в выдаче Яндекса эта штука почему-то не работает, но на большинстве сайтов, где мы её проверяли, всё было ок.
⚡️ПОДПИШИСЬ НА ТЕЛЕГРАМ-КАНАЛ СУНДУК АЛИБАБЫ И ПОКУПАЙ ТОЛЬКО ТОПОВЫЕ ТОВАРЫ С АЛИЭКСПРЕСС
- Запустите Сафари у себя на Айфоне;
- Откройте любой сайт, где есть ссылки;

Касание двумя пальцами распознаётся настолько быстро и непринуждённо, что я даже не сразу сообразил, что ссылка открывается в новой вкладке. Поэтому кликал на неё два раза
- Нажмите на ссылку не одним, а двумя пальцами сразу;
- Ссылка автоматически откроется в новом окне.
WebKit
Webkit — это движок веб-браузера с открытым исходным кодом, разработанный Apple, Inc. Он поддерживает браузеры, включая Google Chrome, Apple Safari, браузер по умолчанию для iOS и браузер по умолчанию для Android.
Домашний Wi-Fi – ваша крепость или картонный домик?
26 января, 2024
Сторонние браузеры по умолчанию в iPhone: Apple уменьшает свою монополию на рынке
Чтобы продолжать работать в ЕС, корпорация вынуждена открыть двери для других разработчиков.
23 января, 2024
Новый 0day в Apple: любознательные пользователи теряют контроль над устройством
Apple выпустила обновления с исправлением очередной ошибки в своих продуктах.
1 декабря, 2023
Apple предотвращает утечку данных: выпущены исправления проблем WebKit в Safari
Пользователям следует обновиться, чтобы не стать жертвой вредоносного ПО.
26 октября, 2023
От Siri до Фото: Apple устраняет десятки уязвимостей в своих ОС
Исправления доступны для всего перечня яблочных гаджетов. С установкой лучше не тянуть.
25 сентября, 2023
Хакеры EvilBamboo устроили «кибергеноцид» азиатским пользователям
Мобильные атаки по национальному признаку: кто охотится на этнические меньшинства?
13 июля, 2023
Apple экстренно выпускает новые патчи для WebKit после отзыва предыдущих
Компания исправила проблему с отображением некоторых сайтов, всем пользователям рекомендуется как можно скорее обновить свои устройства.
28 марта, 2023
Хакеры не пройдут: Apple закрыла критическую брешь в безопасности своих старых устройств
Владельцам старых моделей iPhone необходимо немедленно обновить свои устройства.
14 февраля, 2023
Целый ряд программных продуктов Apple подвержен уязвимостям нулевого дня
Купертиновская корпорация выпустила патчи для iOS, iPadOS, macOS и Safari.
14 декабря, 2022
Apple исправила уязвимость нулевого дня, угрожающую почти всем пользователям продукции Apple
Это уже десятая уязвимость нулевого дня, которую Apple исправила в 2022 году.
19 августа, 2022
Уязвимость нулевого дня в macOS позволяет получить контроль над устройством
Apple известно об эксплуатации ошибки, но она не рассказала подробности.
20 июня, 2022
Уязвимость-зомби в Safari дважды восставала из мертвых
Исследователи Google Project Zero подробно описали уязвимость, которая 5 лет использовалась в дикой природе.
15 июля, 2021
«Русские хакеры» атаковали пользователей LinkedIn через уязвимость 0-day в Safari
Google приоткрыла завесу над атаками с использованием четырех уязвимостей нулевого дня.
4 мая, 2021
В iOS, macOS, iPadOS, tvOS и watchOS исправлено четыре уязвимости нулевого дня
Уязвимости затрагивают движок для рендеринга web-страниц WebKit, являющийся ключевым компонентом браузера Safari.