Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 抽头上的颤振局部推送通知_Flutter - Fatal编程技术网

Flutter 抽头上的颤振局部推送通知

Flutter 抽头上的颤振局部推送通知,flutter,Flutter,有可能什么都不做吗?我有一个“正在进行的”通知,我不希望在用户点击应用程序时打开它 你能帮我吗 编辑: backgroundSync由Workmanager插件在后台执行。同步过程开始时,将显示一个通知,并使用SystemChannel.platform.invokeMethod('SystemNavigator.pop')关闭应用程序。如果用户点击此通知,默认响应是打开应用程序,我想阻止它 我之所以这么做,是因为我使用的是Sembast,我必须重新打开应用程序才能看到后台进程所做的更改。事实上

有可能什么都不做吗?我有一个“正在进行的”通知,我不希望在用户点击应用程序时打开它

你能帮我吗

编辑:

backgroundSync由Workmanager插件在后台执行。同步过程开始时,将显示一个通知,并使用SystemChannel.platform.invokeMethod('SystemNavigator.pop')关闭应用程序。如果用户点击此通知,默认响应是打开应用程序,我想阻止它

我之所以这么做,是因为我使用的是Sembast,我必须重新打开应用程序才能看到后台进程所做的更改。事实上,这是我的主要问题(在后台同步并查看更改),因此如果有人对此有解决方案,它会更好

void backgroundSync() {
  Workmanager.executeTask((String task, Map inputData) async {
    //DataBase _dataBase = DataBase();

    FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin =
        FlutterLocalNotificationsPlugin();

    AndroidInitializationSettings initializationSettingsAndroid =
        AndroidInitializationSettings('mipmap/ic_launcher');
    IOSInitializationSettings initializationSettingsIOs =
        IOSInitializationSettings();
    InitializationSettings initSetttings = InitializationSettings(
      initializationSettingsAndroid,
      initializationSettingsIOs,
    );
    _flutterLocalNotificationsPlugin.initialize(initSetttings);

    void showNotification(String body, {bool fixed = false}) {
      AndroidNotificationDetails android = AndroidNotificationDetails(
        'id',
        'channel',
        'description',
        autoCancel: !fixed,
        styleInformation: MediaStyleInformation(),
        //indeterminate: true,
        ongoing: fixed,
        priority: Priority.High,
        importance: Importance.Max,
      );
      IOSNotificationDetails iOS = IOSNotificationDetails();
      NotificationDetails platform = NotificationDetails(android, iOS);

      _flutterLocalNotificationsPlugin.show(
        0,
        'Sincronización',
        body,
        platform,
        payload: fixed.toString(),
      );
    }

    showNotification('Sincronizando...', fixed: true);
    try {
      await DataBase.init();
      await DataBase.synchronize();
      showNotification('Sincronizado OK');
      return Future.value(true);
    } catch (e) {
      showNotification('Errores al sincronizar');
      return Future.value(false);
    }
  });
}

请提供您正在尝试执行的代码示例。