微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SwiftUI中的widgetURL

如何解决SwiftUI中的widgetURL

我们到底需要在.widgetURL()中指定哪个URL?

在Widget代码的WWDC会话中,他们使用了.widgetURL(entry.character.url)。这里entry.character.url是URL(string: "game:///egghead")!

请解释一下我们需要通过此处(widgetURL())才能到达特定APP视图的URL吗?

解决方法

该网址的格式为scheme:// someAction

存在过分简化的风险,该方案通常是您应用程序的名称。这是您确认网址适合您的应用的方式

在小部件主体中,您使用widgetURL修饰符:

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

我通常将URL的格式设置为myApp:// someAction / parms,以便我可以解析该URL以确定应用程序需要执行的操作,还可以将其传递给一些parms。有些人喜欢通过使用URLComponents正确地形成URL(路径,queryItems等)来完成此操作。这可能是最佳做法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。