如何在swiftUI中获得类似appdelegate的东西

Posted

技术标签:

【中文标题】如何在swiftUI中获得类似appdelegate的东西【英文标题】:How to get appdelegate like thing in swiftUI 【发布时间】:2021-07-21 15:46:19 【问题描述】:

我正在将我的 UIKit 应用程序转换为 SwiftUI 应用程序,在我的 UIKit 项目中,我将一些 url 传递给 webview 并获得一些结果(动态 url),然后调用下面的 appdelegate 方法

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool 

但我想在 SwiftUI 中实现同样的事情,但不确定在 SwiftUI 中这种事情有什么方法。

如果我能得到一些相同的指针或代码,那将是非常有帮助的。

感谢您的帮助

【问题讨论】:

这能回答你的问题吗? Using UIApplicationDelegateAdaptor to get callbacks from userDidAcceptCloudKitShareWith not working mokacoding.com/blog/… 【参考方案1】:

您可以创建一个符合UIApplicationDelegate 的自定义类,然后使用@UIApplicationDelegateAdaptor 告诉您的SwiftUI 应用:

class MyAppDelegate: NSObject, UIApplicationDelegate 
  func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool 
    // your code here
  


@main
struct MyApp: App 
    @UIApplicationDelegateAdaptor(MyAppDelegate.self) var appDelegate

    var body: some Scene 
        WindowGroup 
            ContentView()
        
    

【讨论】:

以上是关于如何在swiftUI中获得类似appdelegate的东西的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 UIViewControllerRepresentable 在 SwiftUI 中呈现 UICollectionView

SwiftUI:动画过渡

如何获得 SwiftUI 颜色的明暗模式版本?

如何在 SwiftUI 中基于 SF Symbols 获得相同大小的圆形图像?

SwiftUI: ScrollView offset

如何将核心位置重置为 ASK 以获得在 swiftUI 中请求位置的权限?