SwiftUI 中的 widgetURL
widgetURL in SwiftUI
我们需要在 .widgetURL()
中指定什么 URL?
在关于 Widget Code Along 的 WWDC 会议中,他们使用了 .widgetURL(entry.character.url)
。这里 entry.character.url 是 URL(string: "game:///egghead")!
请说明URL我们需要经过这里(widgetURL()
)才能到达APP的特定视图?
url 的格式为 scheme://someAction
冒着过度简化的风险,方案通常是您应用的名称。这就是您确认 url 适用于您的应用的方式
在您的小部件主体中使用小部件URL 修饰符:
var body: some View {
content().widgetURL("myApp://someAction")
}
然后在您的应用程序中使用 onOpenURL 修饰符来获取 url,检查它是否适合您的应用程序并解析它以确定要做什么。 someAction 是您发送给应用程序的消息,告诉它该做什么
var body: some Scene {
WindowGroup {
ContentView()
.onOpenURL { url in
guard url.scheme == "myApp" else { return }
print(url) // parse the url to get someAction to determine what the app needs do
}
}
}
我通常制作 myApp://someAction/parms 形式的 url 这样我就可以解析 url 以确定应用程序需要做什么并向它传递一些参数.有些人喜欢通过使用 URL 组件 - 路径、queryItems 等正确形成 URL 来做到这一点。这可能是最佳实践。
我们需要在 .widgetURL()
中指定什么 URL?
在关于 Widget Code Along 的 WWDC 会议中,他们使用了 .widgetURL(entry.character.url)
。这里 entry.character.url 是 URL(string: "game:///egghead")!
请说明URL我们需要经过这里(widgetURL()
)才能到达APP的特定视图?
url 的格式为 scheme://someAction
冒着过度简化的风险,方案通常是您应用的名称。这就是您确认 url 适用于您的应用的方式
在您的小部件主体中使用小部件URL 修饰符:
var body: some View {
content().widgetURL("myApp://someAction")
}
然后在您的应用程序中使用 onOpenURL 修饰符来获取 url,检查它是否适合您的应用程序并解析它以确定要做什么。 someAction 是您发送给应用程序的消息,告诉它该做什么
var body: some Scene {
WindowGroup {
ContentView()
.onOpenURL { url in
guard url.scheme == "myApp" else { return }
print(url) // parse the url to get someAction to determine what the app needs do
}
}
}
我通常制作 myApp://someAction/parms 形式的 url 这样我就可以解析 url 以确定应用程序需要做什么并向它传递一些参数.有些人喜欢通过使用 URL 组件 - 路径、queryItems 等正确形成 URL 来做到这一点。这可能是最佳实践。