Время от времени запрашивайте разрешения iOS, если они все еще запрещены

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

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

У меня есть функция, которая открывает настройки приложения, где пользователь может включить уведомление

extension UIApplication {
    class func openAppSettings() {
        if #available(iOS 8.0, *) {
            UIApplication.shared.openURL(URL(string: UIApplicationOpenSettingsURLString)!)
        }
    }
}

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

Не могли бы вы предложить более элегантный способ ее решения?


person moonvader    schedule 20.09.2017    source источник
comment
начиная с iOS7, но все будет в порядке, даже если есть решение от iOS8   -  person moonvader    schedule 20.09.2017
comment
Я могу использовать количество открытий приложения, каждый раз, когда пользователь открывает приложение, я увеличиваю Int в UserDefaults. Как только пользователь открывает приложение в n-й раз (например, в 7-й раз), я показываю всплывающее окно.   -  person Mohammad Zaid Pathan    schedule 20.09.2017


Ответы (1)


Элегантные способы:

  • снова запрашивать разрешение сразу после того, как пользователь совершил покупку (в приложении), утверждая, что вы хотите предупредить о будущих предложениях

  • запросите разрешение еще раз сразу после того, как пользователь сделал (удаленную) подписку/бронирование, утверждая, что вы хотите предупредить о статусе события/бронирования/доставки

  • запросите разрешение еще раз сразу после того, как пользователь инициировал (в игре) действие, выполнение которого займет более 1 часа, утверждая, что вы хотите предупредить о статусе завершения

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

person Cœur    schedule 17.05.2018
comment
Я во многом согласен с вами, но бывают случаи, когда бизнес требует больше подписчиков на push-уведомления среди текущих пользователей приложения. - person moonvader; 18.05.2018
comment
@moonvader, вы можете уточнить в своем вопросе, какая бизнес-модель у вашего приложения (внутри приложения?, государственное финансирование?, реклама?) и каково содержание этих уведомлений (с днем ​​​​рождения!, Ваша доставка готова, Президент заблокировал вам, Получите скидку на Виагру!, Вам пришло письмо!, Купите 1 дракона, получите 1 яйцо бесплатно и т. д.) - person Cœur; 18.05.2018