Ric*_*son 7 macos deep-linking swiftui
这是使用新协议App和@main.
使用流程:
onOpenURL(_:)预期行为:深层链接被发送到现有的当前打开的应用程序实例
实际行为:启动一个新的应用程序实例,导致该应用程序的两个实例处于活动状态
注意:实际上不需要添加任何代码,因为问题仅取决于向应用程序添加 URL 方案并让网页访问它。
d.q*_*d.q 12
onOpenURL(_:)实际上并不是启动新的应用程序实例,而是在现有实例中创建一个新窗口。文档表明这只发生在 macOS 上(因为 iOS 仅支持单个窗口)。
您需要.handlesExternalEvents(preferring:allowing:)在更高阶视图上使用修改器。调用handlesExternalEvents将覆盖默认行为,即在 macOS 上的应用程序中创建新窗口的行为。就像是:
@main
struct myApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.handlesExternalEvents(preferring: ["myscheme"], allowing: ["myscheme"])
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在子视图中(例如ContentView()):
var body: some View {
VStack {
// your UI
}
.onOpenUrl{ url in
// do something with the deep link url
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |