通知内容扩展中的 SwiftUI?

Tru*_*an1 7 ios swiftui

SwiftUI 视图可以在通知内容扩展中使用吗?Xcode模板只提供了一个视图控制器,可以这样做吗?

jn_*_*pdx 7

是的,您应该能够在UIViewControllerusing中嵌入 SwiftUI 视图UIHostingController。这里有更广泛的答案(在现有 UIKit 应用程序中包括 SwiftUI 视图),但这里有一个使用 Xcode 模板作为UNNotificationContentExtension基础的简短版本:

class NotificationViewController: UIViewController, UNNotificationContentExtension {
    @IBOutlet var container: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let childView = UIHostingController(rootView: SwiftUIView())
        addChild(childView)
        childView.view.frame = container.bounds
        container.addSubview(childView.view)
        childView.didMove(toParent: self)
    }
    
    func didReceive(_ notification: UNNotification) {
        //
    }
}
Run Code Online (Sandbox Code Playgroud)