Определить, включен ли виджет

Есть ли способ определить, добавлен ли мой виджет «Сегодня» в Центр уведомлений пользователем? Мне нужно знать, чтобы я мог соответствующим образом изменить некоторые метки в хост-приложении.


person Eduard    schedule 03.08.2016    source источник


Ответы (1)


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

func widgetHasRun() {
    if let sharedContainer = NSUserDefaults(suiteName: "group.com.my.app") {
        sharedContainer.setBool(true, forKey: "today widget installed")
        sharedContainer.synchronize()
    }
}

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

person Christopher Pickslay    schedule 03.08.2016