Rep*_*pox 5 plugins dart flutter
我有以下文件,该文件基于有关如何管理后台消息(即应用程序终止或在后台时)的firebase_messaging示例。
该文件当前包含以下内容:
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'notifications.dart';
Future<dynamic> backgroundMessageHandler(Map<String, dynamic> message) async {
print("backgroundHandler: $message");
SharedPreferences prefs = await SharedPreferences.getInstance();
print(prefs.getInt('latest_id'));
}
Run Code Online (Sandbox Code Playgroud)
应用程序确实收到了通知,它在打印内容时显示,message但是当我尝试获取SharedPreferences 时,控制台向我显示以下消息并且代码执行停止:
I/flutter (17018): Unable to handle incoming background message.
I/flutter (17018): MissingPluginException(No implementation found for method getAll on channel plugins.flutter.io/shared_preferences)
Run Code Online (Sandbox Code Playgroud)
有没有可能解决这个问题?
小智 6
我知道这有点晚了,但我找到了解决方案。我分享给下一个遇到这个问题的人。您应该在 PluginRegistry 中添加 SharedPreferencesPlugin :
SharedPreferencesPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"));
Run Code Online (Sandbox Code Playgroud)
完整的类:
import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import com.tekartik.sqflite.SqflitePlugin
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
import com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin
import io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin
class Application : FlutterApplication(), PluginRegistry.PluginRegistrantCallback {
override fun onCreate() {
super.onCreate()
FlutterFirebaseMessagingService.setPluginRegistrant(this);
}
override fun registerWith(registry: PluginRegistry?) {
io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
SqflitePlugin.registerWith(registry?.registrarFor("com.tekartik.sqflite.SqflitePlugin"));
FlutterLocalNotificationsPlugin.registerWith(registry?.registrarFor("com.dexterous.flutterlocalnotifications.FlutterLocalNotificationsPlugin"))
SharedPreferencesPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.sharedpreferences.SharedPreferencesPlugin"));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
427 次 |
| 最近记录: |