Swift захватывает, когда пользователь нажимает на виджетIOS

Программируем под IOS
Ответить
Anonymous
 Swift захватывает, когда пользователь нажимает на виджет

Сообщение Anonymous »

В Swift я хочу обнаружить, когда пользователь нажимает на мой виджет, чтобы открыть приложение, чтобы я мог отправлять аналитику. Тем не менее, я хочу, чтобы аналитика была отправлена ​​ непосредственно из виджета , а не из самого приложения. Это означает, что я не хочу использовать Swiftui OnoPenurl .
для достижения этого, я попытался добавить кнопку прозрачной кнопки, которая вызывает Appintent как это:

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

var body: some View {
ZStack {
Button(intent: TappIntent()) {
ZStack {
Color.clear
}
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.buttonBorderShape(.automatic)
.buttonStyle(NoHighlightButtonStyle())
}
}

public struct TappIntent: AppIntent {
public static var title: LocalizedStringResource = "Did Tap Widget"

public func perform() async throws -> some IntentResult & OpensIntent {
print("TouchIntent was called", level: .INFO)
SharedAnalytics(type: "Widget").event("Regular Tap")

return .result(opensIntent: OpenAppIntent())
}
}
Проблема состоит в том, что каждый раз, когда называется этот Аппинтуант , он также запускает gettimeline , чего я не хочу.
Мои вопросы:
  • Есть ли лучший способ обнаружить, когда пользователь Tals taps widget без TrigningLine? Настройте аппетитую, чтобы его не обновляли временную шкалу виджета?


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

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

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

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

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

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