首页 > 解决方案 > Native 与 Flutter 中的共享偏好

问题描述

我的颤振应用程序有一个原生组件。这个原生组件正在使用platform.invokeMethod. 在这个本机组件中,我使用代码将一些东西保存到共享首选项

sharedPreferences = getSharedPreferences("foo", Context.MODE_PRIVATE)
sharedPrerences.putString(...

现在,我想从我的颤振/飞镖代码中读取这个共享首选项文件。但 API 无法让我指定共享首选项文件名 ( foo)。我只能这样做

SharedPreference.getInstance().getString(..

我该如何解决这个问题?

标签: androidfluttersharedpreferences

解决方案


我假设您在 Flutter 端使用Shared Preferences -plugin。这只访问一个名称在插件中硬编码的文件。

与其将首选项保存在原生 android 端,不如将它们从invokeMethodFlutter 返回,然后使用插件保存它们。

而且 - 虽然不是最优雅的解决方案 - 您可以将 android 端的首选项写入插件正在使用的同一文件中: "FlutterSharedPreferences". 这可能还涉及在写入后在颤振端调用reload以使插件刷新其本地值。


推荐阅读