Когда запрашивать доступ к событиям?

У меня есть контроллер представления, в котором я получаю доступ к хранилищу событий.

Я не уверен, когда в контроллере представления я должен запрашивать разрешение на доступ?

В настоящее время я запрашиваю разрешение в viewDidLoad.

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

В качестве наилучшей практики я должен также запросить разрешение в viewWillAppear?


person mrd    schedule 24.05.2014    source источник
comment
viewWillAppear не вызывается, когда вы возвращаетесь из фона. Кроме того, если пользователь отменяет доступ к вашему приложению, повторный запрос разрешения не будет отображать пользовательский интерфейс (оно будет отклонено без запроса пользователя). Итак, я не уверен, что вы спрашиваете.   -  person Jesse Rusak    schedule 24.05.2014


Ответы (1)


Я бы предложил третий вариант: вместо viewDidLoad или viewDidAppear я бы спрашивал только тогда, когда приложению действительно требуется доступ к хранилищу событий, а не раньше. Если вы сделаете это при первом появлении представления, реакция пользователя может быть «о, я не могу представить, зачем этому приложению нужен доступ, поэтому я откажусь от него». Но если они инициируют какое-то действие со своей стороны, для которого явно требуется доступ к хранилищу событий, самое время спросить разрешения, потому что реакция будет «о, конечно, хочу».

person Rob    schedule 24.05.2014
comment
Хорошее предложение! Спасибо. - person mrd; 24.05.2014