窗口小部件打开应用程序时,该应用程序是否可以知道窗口小部件的大小

时间:2020-10-15 03:12:45

标签: swift swiftui widget ios14 widgetkit

点击iOS 14小部件时,它会打开该应用程序:

var body: some View {
    Text(entry.text)
        .widgetURL(WidgetEntryView.deeplinkURL)
}

应用程序能否获取打开它的小部件的大小(小,中,大)?

1 个答案:

答案 0 :(得分:1)

您可以使用private void DoTest2 () { A += () => DebugText ($"A Test"); A += B; B += () => DebugText ($"B Test"); B += C; C += () => DebugText ($"C Test"); A.Invoke (); // Result: A Test } 并将其传递给@Environment(\.widgetFamily)widgetURL

Link

然后检测在您的主应用程序中打开此URL:

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)
        }
    }
}

这是一个GitHub repository,带有不同的窗口小部件示例,包括DeepLink和环境窗口小部件。

相关问题