Почему интерактивные кнопки в виджете iOS 17 не вызывают AppIntent Perform() при запуске приложения?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Почему интерактивные кнопки в виджете iOS 17 не вызывают AppIntent Perform() при запуске приложения?

Сообщение Anonymous »

Внутри виджета есть кнопка

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

Button(intent: AnAppIntent()) {
// Button's label.
}
// It seems this modifier does not add any value.
.invalidatableContent()
подключен к AppIntent.

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

struct AnAppIntent: AppIntent {
static var title: LocalizedStringResource = "An AppIntent"

init() {
// AppIntent required init.
}

func perform() async throws -> some IntentResult {

// Never called when the app is running.

return .result()
}
}
Кнопка вызывает метод Perform() AppIntent при нажатии и, следовательно, обновляет пользовательский интерфейс виджета (с модификатором .invalidatableContent() или без него) только когда приложение полностью закрыто.
Если приложение работает в фоновом режиме, метод Perform() не вызывается, и пользовательский интерфейс виджета никогда не обновляется.
Пользователь должен явно закрыть приложение, чтобы виджет работал должным образом.
Проблема может быть в используемой временной шкале.

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

struct SimpleEntry: TimelineEntry {
let date: Date
}

struct Provider: TimelineProvider {
func placeholder(in context: Context) -> SimpleEntry {
SimpleEntry(date: Date())
}

func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> ()) {
completion(SimpleEntry(date: Date()))
}

func getTimeline(in context: Context, completion: @escaping (Timeline) -> ()) {
var entries: [SimpleEntry] = []

// Generate a timeline of five entries an hour apart, starting from the current date.
let currentDate = Date()
for hourOffset in 0 ..< 5 {
let entryDate = Calendar.current.date(byAdding: .second, value: hourOffset, to: currentDate)!
entries.append(SimpleEntry(date: entryDate))
}

let timeline = Timeline(entries: entries, policy: .atEnd)
completion(timeline)
}
}
Однако, если бы проблема заключалась в временной шкале, виджет не работал бы при закрытом приложении.


Подробнее здесь: https://stackoverflow.com/questions/765 ... m-when-the
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Интерактивные аппараты в виджете iOS не работают на Xcode 16 / iOS 18
    Anonymous » » в форуме IOS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Сделать что-нибудь из AppIntent в виджете iOS?
    Anonymous » » в форуме IOS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Открыть URL-адрес при нажатии кнопки AppIntent. Действие виджета?
    Anonymous » » в форуме IOS
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Виджет iOS не обновляется при выборе SwiftData AppIntent
    Anonymous » » в форуме IOS
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Интерактивные сюжетные графики с чтением файла неправильно чтения через функцию кнопки в Python (VS Code/Jupyter)
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

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