清除myBackgroundMessageHandler中的共享首选项



当我发送FCM消息并且应用程序在后台时,我想清除共享的首选项。在myBackgroundMessageHandler方法内部,我正在调用一个方法来清除它们。

static Future<dynamic> myBackgroundMessageHandler(
Map<String, dynamic> message) {
clearPreferences();
}
static void clearPreferences() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.clear();
}

我得到以下错误:

未处理的异常:MissingPluginException(未找到实现对于方法getAll on channel plugin.flutter.io/shared_preferences(

步骤1(转到Application.kt/Application.java(在我的例子中是kotlin(

步骤2(将这些行添加到应用程序类(在kotlin中(中

if (!registry!!.hasPlugin("io.flutter.plugins.sharedpreferences")) {
SharedPreferencesPlugin.registerWith(registry!!.registrarFor("io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"));
}

记住导入这个以及

import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin

步骤3(运行颤振清理->颤动得到->卸载你的应用

代码非常好。

只需重新启动模拟器。如果你没有通过关闭模拟器并再次打开它来完全重新启动,那么这个错误很可能会发生,因为它没有新添加的插件。

在Flutter App主函数内的runApp()函数之前,将SharedPreferences.setMockInitialValues({})添加到代码中
这为我修复了错误

最新更新