Как перезагрузить вид в Apple Watch?

Привет всем, мне нужно мгновенно обновиться из моего родительского приложения (приложение для iPhone) и показать значение в приложении для часов. Мне нужно перезагрузить значение на экране часов, когда обновляются значения приложений. Мне нужно обновить приложение и показать его в приложении расширения. введите здесь описание изображения

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


person SARATH SASI    schedule 29.06.2015    source источник


Ответы (1)


Вы можете установить таймер и изменить содержимое ярлыков.

В WatchKit (WKInterfaceLabel) установить содержимое метки очень просто. Просто используйте следующий код, чтобы установить новый текст для меток:

Быстрый:

label1.setText(temperature)

Цель-C:

[label1 setText:temperature];

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

Для таймера лучше установить короткие интервалы. Меньший интервал означает более быстрое обновление, но большее использование Интернета и разрядку батареи, а более длительные интервалы означают обновление не так быстро, как в предыдущем случае, но меньшее использование Интернета и большую экономию заряда батареи.

Вы можете изменить интервал во время работы в зависимости от процента заряда батареи. Если он - например, меньше 20% - можно ставить более длинные интервалы, а когда больше 20% - меньшие. Вы можете найти процент заряда батареи Apple Watch только в watchOS 2, но в обеих версиях вы можете узнать процент заряда батареи iPhone с помощью следующего кода:

Быстрый:

var x = UIDevice.currentDevice().batteryLevel

Цель-C:

int x = [UIDevice currentDevice].batteryLevel;

ПРИМЕЧАНИЕ. Короткие интервалы составляют от 10 мс до 200 мс, а длинные — от 200 мс до 1 с. (мс = миллисекунды = 0,001 секунды)

ПРИМЕЧАНИЕ. Вы можете вызвать метод инициализации представления через интервалы таймера.

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

person Seyyed Parsa Neshaei    schedule 29.06.2015
comment
ПРИМЕЧАНИЕ. Используемый код уровня заряда батареи используется в приложении Battery Adviser от Applestan в App Store. - person Seyyed Parsa Neshaei; 30.06.2015
comment
Таймер не запускает [self willActivate]; метод должным образом. Но кнопка у меня работает нормально. NSTimer*timer = [NSTimer ScheduleTimerWithTimeInterval: 4.000 target: self selector: @selector(timerFired) userInfo:nil Repeats:YES]; - person SARATH SASI; 30.06.2015
comment
и метод как - (void)timerFired { // NSLog(@updated View); [сам активировать]; } - person SARATH SASI; 30.06.2015
comment
@SARATHSASI вы захотите использовать WKApplicationRefreshBackgroundTask для обновления в фоновом режиме. NSTimer будет работать только тогда, когда приложение находится на переднем плане. - person 2Toad; 07.07.2019