Туториалы
02 декабря 2022
Туториалы
02 декабря 2022
Скрывайте Виджеты Экрана Блокировки когда устройство заблокировано.

Teabyte

ЛИЧНЫЙ БЛОГ АЛЕКСАНДРА ВАЙСА

Опубликовано 2022-11-19

Недавно на работе нас попросили скрыть(*спрятать) содержимое виджетов экрана блокировки, когда устройство заблокировано, подобно виджету Activity Rings, который не показывает ваш ежедневный прогресс, когда вы блокируете устройство. Оказалось, что не так уж очевидно, как этого добиться. В этом небольшом посте я хочу рассказать о том, что необходимо для достижения такого же поведения, как у виджета Activity Rings.

 

Скрытие, Определяемое Пользователем

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

Настройки -> Face ID & код-пароль далее активируйте Виджеты главного экрана в разделе Доступ с блокировкой экрана. Это приведет к затемнению(;размытию) каждого виджета Экрана Блокировки, независимо от его реализации, при использовании .privacySenstive(_:)(doc).

 

Настраиваемое Скрытие при блокировке устройства

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

1. Выберите NSFileProtectionComplete(doc) и добавьте его в файл вашего виджета Entitlements





    com.apple.developer.default-data-protection
    NSFileProtectionComplete

 

⚠️ NSFileProtectionComplete будет правильно работать только на реальном устройстве. В симуляторе это ни на что не влияет.

2. Добавьте модификатор privacySensitive(_) в код вью ваших виджетов.

Text("My Widget View")
    .privacySensitive()

 

Теперь попробуйте запустить ваш виджет на реальном устройстве. Вы должны увидеть поведение, похожее на то, что показано в следующем видео:

 

Заключение

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

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

До встречи в следующий раз!
 

Оригинал статьи


Оцените статью
0
0
0
0
0

Чтобы добавить комментарий, авторизуйтесь
Войти
Безумова Виола
Пишет и переводит статьи для SwiftBook