Интерактивные аппараты в виджете iOS не работают на Xcode 16 / iOS 18IOS

Программируем под IOS
Ответить
Anonymous
 Интерактивные аппараты в виджете iOS не работают на Xcode 16 / iOS 18

Сообщение Anonymous »

Я пытаюсь интегрировать интерактивный виджет iOS, написанный в Swift с моим приложением Flutter, и я сталкиваюсь с проблемами с интерактивными аппаратами в моем виджете. Моя цель состоит в том, чтобы иметь кнопку в виджете, которая запускает аппинтиенту, записывает значение в общие пользователи (используя нашу группу приложений), а затем мое приложение Flutter поднимает это изменение. Однако, когда я пытаюсь использовать эти модификаторы в коде своего виджета, я получаю ошибки, такие как: < /p>
holidy.appintent недоступен в контексте »
« Значение кнопки типа '»не имеет члена« Аптитента »»
Я пробовал очистить выброшенную папку данных, подтверждая то, что код виджела является только в целевой целевой комплектации, и то, что DO, в целеуровне. Несмотря на это, интерактивные модификаторы не работают, как и ожидалось.

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

import WidgetKit
import SwiftUI
import AppIntents

struct SimpleAppIntent: AppIntent {
static var title: LocalizedStringResource = "Simple Action"

func perform() async throws -> some IntentResult {
let userDefaults = UserDefaults(suiteName: "group.NSL_homescreenapp")
userDefaults?.set("AppIntent Triggered", forKey: "flutter_action")
WidgetCenter.shared.reloadTimelines(ofKind: "MyHomeWidget")
return .result()
}
}

struct MyHomeWidgetEntryView: View {
var body: some View {
if #available(iOS 17.0, *) {
Button("Hard ios17") { }
.buttonAction(intent: SimpleAppIntent())
.buttonStyle(.bordered)
.frame(maxWidth: .infinity)
} else {
Button("Hard ios irgendwas") { }
.buttonStyle(.bordered)
.frame(maxWidth: .infinity)
}
}
}

@main
struct MyHomeWidget: Widget {
let kind: String = "MyHomeWidget"

var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: Provider()) { _ in
MyHomeWidgetEntryView()
}
.configurationDisplayName("My Home Widget")
.description("An interactive widget example using AppIntents.")
}
}

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

func getSnapshot(in context: Context, completion: @escaping (SimpleEntry) -> Void) {
let entry = SimpleEntry(date: Date(), message: "Snapshot")
completion(entry)
}

func getTimeline(in context: Context, completion: @escaping (Timeline) -> Void) {
let entry = SimpleEntry(date: Date(), message: "Live Data")
let timeline = Timeline(entries: [entry], policy: .atEnd)
completion(timeline)
}
}

struct SimpleEntry: TimelineEntry {
let date: Date
let message: String
}
, который выглядит так:

Я не забил, потому что я установил все, что требуется: My widget deoport ateport. 16.2, и я импортировал АПРИЗ. Кто -нибудь столкнулся с аналогичными проблемами с интерактивными виджетами и аппатитными? Любые идеи или обходные пути будут оценены!

Подробнее здесь: https://stackoverflow.com/questions/795 ... -16-ios-18
Ответить

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

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

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

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

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