【发布时间】:2022-08-12 23:34:11
【问题描述】:
我正在使用flutter_background_service 启动服务以从云端获取数据。 它在 Android 中运行良好。但是当我在 iOS 模拟器上运行时,我得到了上面提到的错误。
void syncData() async {
WidgetsFlutterBinding.ensureInitialized();
Fimber.plantTree(DebugTree());
Fimber.d(\"SyncData() called\");
final service = FlutterBackgroundService();
Fimber.d(\"Sync Service Started: $service\");
ApiRepo apiRepo = ApiRepo();
bool isPatientUploaded = false;
Fimber.d(\"isPatientUploaded: $isPatientUploaded\");
if(Platform.isAndroid) {
SharedPreferencesAndroid.registerWith();
PathProviderAndroid.registerWith();
FlutterBackgroundServiceAndroid.registerWith();
} else if (Platform.isIOS) {
SharedPreferencesIOS.registerWith();
PathProviderIOS.registerWith();
FlutterBackgroundServiceIOS.registerWith();
}
Fimber.d(\"Fetching Shared Preference\");
SharedPreferences prefs = await SharedPreferences.getInstance();
Fimber.d(\"Fetched Shared Preference: $prefs\");
String? authToken = prefs.getString(PrefKeys.TOKEN);
...........
}
我可以看到日志直到 \"Fetching Shared Preference\",然后得到一个错误。我没有看到下一个日志。
[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)
这就是我开始服务的方式
startSync() async {
Fimber.d(\"startSync() called\");
final service = FlutterBackgroundService();
Fimber.i(\"Configuring $service\");
bool? isConfigured = await service.configure(
iosConfiguration: IosConfiguration(
onForeground: syncData, onBackground: syncData, autoStart: false),
androidConfiguration: AndroidConfiguration(
onStart: syncData,
isForegroundMode: true,
autoStart: false,
foregroundServiceNotificationContent: \"Uploading Data to Cloud...\",
foregroundServiceNotificationTitle: \"Selfi\",
));
await DatabaseHelper().db;
Fimber.i(\"isConfigured: $isConfigured\");
if (isConfigured) {
Fimber.d(\"Starting Service\");
bool isStarted = await service.startService();
Fimber.d(\"Service Started: $isStarted\");
}
}
-
您是否尝试过简单地杀死您的应用程序并重新启动?看起来你可能只是初始化
SharedPreferences而应用程序只是看不到它 -
有什么解决方案吗?
-
@Vishak A Kamath 你解决了吗?
-
同样的问题,你解决了吗?
标签: android ios flutter flutter-dependencies flutter-sharedpreference