2016-06-23 3 views
0

побудки Вот некоторые watchOS код, который я работаю на Similator (Watch):watchOS простой

..... 
let interval = 60.0 
NSTimer.scheduledTimerWithTimeInterval(interval, 
             target: self, 
             selector: #selector(InterfaceController.timerDidEnd(_:)), 
             userInfo: nil, repeats: false) 
..... 

func timerDidEnd(timer:NSTimer) { 
    print("Time is over! Please wake up!") 
} 

От Xcode я запустить приложение, то первая часть кода выше запускается на выполнение. Затем я нажимаю Command-Shift-H, и приложение идет в фоновом режиме.

Через одну минуту я вижу в консоли отладки сообщение: Время истекло! Пожалуйста, проснись!

Все работает, как я ожидаю. Мой вопрос:

Что нужно написать внутри функции timerDidEnd(), чтобы приложение просыпалось из фона на симуляторе, а не просто печатало текущее сообщение в отладчике?

ответ

1

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

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

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

+0

Я вижу, у вас есть точка. Теперь, как насчет этой ситуации: вы и ваше приложение спали. Но вы рассчитываете на свое приложение, чтобы разбудить вас утром. Как мы справляемся с таким случаем? – Michel

+0

Вы планируете локальное уведомление на часах, используя новую структуру UserNotifications. Уведомление появляется утром, со звуковой/тактильной обратной связью. Apple может сделать это в watchOS 2. Теперь мы можем сделать что-то подобное в watchOS 3. Опять же, уведомления являются ключом к тому, что вы хотите делать. –

Смежные вопросы