iOS .onContinueUserActivity 未被调用

问题描述 投票:0回答:1

.onContinueUserActivity
从未在 Apple 提供的状态恢复示例应用程序中被调用.

在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
    }
}

我知道

.onContinueUserActivity
不是通过在方法中放置打印语句来调用的,因为注释掉它对应用程序的恢复没有影响。

此处列出的“测试状态恢复”策略不起作用。

ios swift swiftui nsuseractivity
1个回答
0
投票
我认为这可能是示例代码无法按照广告宣传的方式工作的情况。如果您正确测试了从示例代码构建的应用程序,它

确实恢复了应用程序的状态,但不是通过他们声称使用的机制。

你是对的。

onContinueUserActivity

 块根本没有被调用。您可以从应用程序中删除该代码,它会继续以 NSUserActivity 机制应有的方式恢复状态。进一步测试表明,正是这条线实现了恢复:

@SceneStorage("ContentView.selectedProduct") private var selectedProduct: String?
真可惜。我希望这能尽快解决。

© www.soinside.com 2019 - 2024. All rights reserved.