Перезагрузка временной шкалы другого виджета iOS из AppIntentIOS

Программируем под IOS
Ответить
Anonymous
 Перезагрузка временной шкалы другого виджета iOS из AppIntent

Сообщение Anonymous »

Я работаю с двумя виджетами iOS ( и WidgetB), которые отображают значение флага, хранящегося в SwiftData. Каждый виджет может обновлять флаг, вызывая AppIntent при нажатии кнопки.
После того, как один виджет обновит флаг, я хочу, чтобы другой виджет обновил свою временную шкалу, чтобы он отображал обновленное значение. Я попытался вызвать WidgetCenter.shared.reloadAllTimelines() и WidgetCenter.shared.reloadTimelines(ofKind:)
из AppIntent, но хотя это работает нормально в симуляторе и на физическом устройстве во время отладки, оно не работает на физическом устройстве вне режима отладки.
Вот мое намерение приложения, которое должно запустить обновление.

Код: Выделить всё

struct ToggleFlagIntent: AppIntent {
func perform() async throws -> some IntentResult {

// await swiftdata update

// Tried any variation of reload timeliness
WidgetCenter.shared.reloadAllTimelines()
WidgetCenter.shared.reloadTimelines(ofKind: "WidgetB")
WidgetCenter.shared.reloadTimelines(ofKind: "WidgetA")

return .result()
}
}
Виджет, который запускает обновление (и любые его варианты, такие как маленький/средний/большой), обновляется, поскольку это гарантировано системой, как описано в примере WWDC, но другие виджеты с отдельными определениями, которые зависят от тех же данных, не перезагружают свою актуальность, следовательно, отображают устаревшие данные.
Кто-нибудь сталкивался с такой проблемой? Возможно ли вообще перезагрузить временные шкалы других виджетов из AppIntent?
Это упрощенная версия моего процесса, поэтому использование одного виджета для имитации нескольких типов виджетов не является для меня решением.
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/798 ... -appintent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»