Skip to main content

Apple добавила в iOS 14 новое баннерное оповещение, которое позволяет пользователям узнать, вставляется ли приложение из буфера обмена и, следовательно, может читать содержимое буфера обмена. Это является частью контроля конфиденциальности iOS 14, и после исследования Mysk в начале этого года, которое привлекло внимание к этой проблеме.

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

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

Однако в большинстве случаев ничего плохого не происходит. Большинство приложений, которые получают доступ к буферу обмена самостоятельно, пытаются помочь, как в случае с Apollo. Другой пример — когда браузерные приложения, такие как Google Chrome, проверяют буфер обмена, когда вы переходите в поле URL, чтобы предложить опцию «Вставить и перейти». Многие приложения для редактирования текста автоматически заполняют пустой документ содержимым буфера обмена, если буфер обмена содержит строку текста.

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

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

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

Помните, что любой доступ вызывает предупреждение баннера. Вот где приходит новый API.

При обновлении для использования этого нового средства приложение может запросить в буфере обмена тип текстовых данных, которые оно содержит… без фактического доступа к нему. Например, приложение может заранее знать, содержит ли буфер обмена URL-адрес или веб-поиск.

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

Однако, если тест ложен, а на монтажном столе нет URL-адреса, приложение Apollo просто ничего не может сделать. Это происходит тихо, без баннера. По сути, количество ложных срабатываний будет уменьшаться при обновлении приложений.

Поскольку API был добавлен только в iOS 14, разработчикам придется ждать до осени, пока они действительно не смогут реализовать эту функциональность.

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