我有一个flutter应用程序,在其中我设置了shared_preferences,现在我正在创建一个小部件,然后使用swiftUI和WidgetKit在本机中完成。然而现在我被如何获取我存储在flutter中的preferences的值所困扰,因为我已经搜索到flutter shared_preferences将其存储在swiftUI UserDefaults中。我已经尝试了不同的解决方案,但仍然没有运气,以下是我所尝试的:
1-我已经在应用程序和小部件中设置了应用程序组,然后我像这样使用它,注意我在小部件TimelineProvider getTimeline()函数中调用它。
let defaults = UserDefaults(suiteName: "app.group.id")
let value = defaults?.object(forKey: "flutter.KEY")
print("-- Here \(value ?? "empty")")
2-我已经做了相同的方法,使用标准而不是组ID。
还有一些其他的小调整,我认为会工作,但没有进展。我是新的斯威夫特,因为这是我的第一个项目,所以我犯了一些错误,但不知道什么样的任何帮助将不胜感激。
1条答案
按热度按时间mcvgt66p1#
在尝试了几乎所有的方法之后,我找到了一个原因,为什么我的用户默认值不给我存储在flutter shared_preferences中的数据。这是因为flutter shared_preferences在存储/设置数据时使用userdefault.standard,因此在我的小部件中,即使我给了两个目标(应用程序和小部件)相同的组ID,它也不可用,因为我的flutter Shared_pref包将其设置为标准。为了解决这个问题,我应用了不同的方法,我使用了这个Package,它允许我在flutter中设置appGroup,然后我可以在swiftUi小部件中获取值。在后台,这个包使用methodChannels,用于调用flutter中的方法,直接设置swiftUi userdefaults中的appGroup和值。这是我的方法,我不知道它是否正确,因为我是新来的斯威夫特,但它的工作现在。