При нажатии на виджет iOS 14 открывается приложение:
var body: some View {
Text(entry.text)
.widgetURL(WidgetEntryView.deeplinkURL)
}
Может ли приложение получить размер (маленький, средний, большой) открывающего его виджета?
При нажатии на виджет iOS 14 открывается приложение:
var body: some View {
Text(entry.text)
.widgetURL(WidgetEntryView.deeplinkURL)
}
Может ли приложение получить размер (маленький, средний, большой) открывающего его виджета?
Вы можете использовать @Environment(\.widgetFamily)
и передать его в widgetURL
или Link
:
struct Widget1EntryView: View {
@Environment(\.widgetFamily) var widgetFamily
var entry: Provider.Entry
var deeplinkURL: URL {
URL(string: "widget-deeplink://widgetFamily/\(widgetFamily)")!
}
var body: some View {
VStack {
Link("Tap me", destination: deeplinkURL)
Text("Widget family: \(String(describing: widgetFamily))")
.widgetURL(deeplinkURL)
}
}
}
Затем обнаружите открытие этого URL-адреса в своем основном приложении:
struct ContentView: View {
var body: some View {
Text("Test")
.onOpenURL { url in
print(url) // prints `widget-deeplink://widgetFamily/systemSmall`
print(url.lastPathComponent) // prints `systemSmall`
}
}
}
Вот репозиторий GitHub с различными примерами виджетов, включая виджеты DeepLink и Environment. .