我有一个用户可以登录的应用程序,如果用户登录了,我会显示一个占位符作为我的小部件,它可以通过Intent扩展进行配置。
该配置有两个选项:
- 第一个选项取决于当前登录的用户的用户名。
- 第二选项取决于第一选项的值。
这对于一个用户来说很有效,但是,如果用户注销,然后用另一个帐户登录,当他们尝试配置小部件时,旧的选项仍然被选中,这是错误的选项,因为现在是另一个用户。
如何在WidgetKit中重置小部件的配置?也就是说,当用户尝试配置它时,所有先前的配置都将被取消选中并为空。
我试过了
WidgetCenter.shared.reloadAllTimelines()
但这只会重新加载时间轴方法,而不会重置配置。
我看过苹果的文档,也找不到任何关于它的东西。
3条答案
按热度按时间nzkunb0c1#
你不能,你唯一的选择就是忽略widget端的配置选项,并向用户显示某种错误消息,告诉他们他们的配置需要更新,INExtension还没有提供处理这个问题的方法。
mfpqipee2#
我找到了此解决方案,但仅适用于动力学属性:在IntentHandler中为每个用户使用不同的标识符。示例:
w8rqjzmb3#
我也遇到了同样的问题,小部件显示过时的配置选项。我通过强制刷新我正在使用的共享Core Data数据库中的所有对象来解决这个问题。我在"getTimeline”方法中完成了这一操作。