.onContinueUserActivity
从未被调用过Apple 提供的状态恢复示例应用程序 https://developer.apple.com/documentation/swiftui/restoring_your_app_s_state_with_swiftui.
在 DetailView 内部,调用此方法:
// The described activity for this view.
.userActivity(DetailView.productUserActivityType,
isActive: product.id.uuidString == selectedProductID) { userActivity in
describeUserActivity(userActivity)
}
在 ContentView(DetailView 的父级)内部,不会调用此方法:
.onContinueUserActivity(DetailView.productUserActivityType) { userActivity in
if let product = try? userActivity.typedPayload(Product.self) {
selectedProduct = product.id.uuidString
}
}
I know .onContinueUserActivity
不会通过在方法中放置 print 语句来调用,因为将其注释掉对应用程序的恢复没有影响。
列出的“测试状态恢复”策略here https://developer.apple.com/documentation/swiftui/restoring_your_app_s_state_with_swiftui不工作。
我认为这可能是示例代码无法按照其宣传的方式工作的情况。如果您正确测试了从示例代码构建的应用程序,它does恢复应用程序的状态,但不是通过他们声称使用的机制。
你是对的。这onContinueUserActivity
block 根本没有被调用。您可以从应用程序中删除该代码,它会继续按照 NSUserActivity 机制应该的方式恢复状态。进一步的测试表明,正是这一行实现了恢复:
@SceneStorage("ContentView.selectedProduct") private var selectedProduct: String?
太可惜了。我希望这件事能尽快得到解决。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)