[英]iOS 15.4 - SwiftUI + CarPlay - State not updating
随着iOS 15.4 (2022 年 3 月 14 日)的更新,CarPlay 应用程序中的状态更新 (SwiftUI) 似乎已被破坏。
我已将代码简化为下面的示例。 请注意,这适用于iOS+CarPlay 15.3。 这也适用于运行 15.4 的iOS(仅限)应用程序。
struct ContentView: View {
@State private var test: Int = 0
var body: some View {
VStack {
Text("Seconds elapsed: \(self.test)")
}
.onAppear {
Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
self.test += 1
}
}
}
}
我可以得出结论,SwiftUI CarPlay 应用程序中的状态未更新。 有没有更新状态的新方法? 我似乎无法确定我可能错过的任何事情。 也许使用 SwiftUI 还没有完全支持 CarPlay 集成。 我还修改了代码以使用顶部的菜单按钮来增加self.test
。 这也没有任何影响。
配置信息
CarPlay 应用程序是使用 Info.plist 设置的。
Application Scene Manifest
> Scene Configuration
>> CPTemplateApplicationSceneSessionRoleApplication (Array)
>>> Item 0
>>>> UISceneDelegateClassName = $(PRODUCT_MODULE_NAME).AppDelegate
>>>> UISceneConfigurationName = Default Configuration
我在AppDelegate
中侦听CPTemplateApplicationSceneDelegate
并相应地提交适当的模板。 然后我将UIHostingController
绑定到CPWindow
的rootViewController
属性。
我很想对导致这种缺乏更新状态的原因有一些见解。 不知道我在这里缺少什么。 非常感谢您的努力和回应。
我可以确认这个问题现在在最新的测试版软件中得到了神奇的解决。 (iOS 16 测试版 1)
没有添加或更改额外的代码。
您是否已在 CarPlay 中使用 SwiftUI 提交应用以供审核? 被批准了吗?
根据 Apple 文档,您应该只使用应用程序授权允许的模板: CarPlay 编程指南
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.