Хобрук: Ваш путь к мастерству в программировании

запускать код дротика в фоновом режиме, даже когда мое приложение закрыто

Во флаттере я использую adhara_socket_io, чтобы открыть сокет и получить данные с моего сервера для отправки уведомления с помощью flutter_local_notifications, и он работает, когда приложение запущено, теперь мне нужно запустить это в фоновом режиме, поэтому, когда мое приложение не работает, оно все еще получает данные с моего сервера и отправляет уведомления, есть ли способ сделать это во флаттере?

   void initSocket() async {
    final deviceInfo = await Constants.getDeviceDetails();
    final String deviceId = deviceInfo[2];
    Uuid uuid = Uuid();
    print(deviceInfo);
    final id = uuid.v5(Uuid.NAMESPACE_URL, deviceId);
    print('id ' + id);

    SocketIOManager manager = SocketIOManager();
    SocketIO socket = await manager.createInstance(
      SocketOptions(URI,
          enableLogging: false,
          transports: [Transports.WEB_SOCKET /*, Transports.POLLING*/]),
    );
    socket.onConnect((data) {
      print("connected...");
      print(data);
      socket.emit('settings', [
        {'device_id': id}
      ]);
    });
    socket.onConnectError((_) => print('connect error'));
    socket.onConnectTimeout((_) => print('timeout'));
    socket.onError((_) => print('error'));
    socket.onDisconnect((_) => print('disconnect'));
    socket.on('notif', (data) {
      print('notif');
      _showNotificationWithDefaultSound(data['heading'],data['content']);
    });
    socket.connect();
  }

  initNotifications() {
    var initializationSettingsAndroid = AndroidInitializationSettings('@mipmap/ic_launcher');
    var initializationSettingsIOS = IOSInitializationSettings();
    var initializationSettings = InitializationSettings(initializationSettingsAndroid,initializationSettingsIOS);
    flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin();
    flutterLocalNotificationsPlugin.initialize(initializationSettings,onSelectNotification: onSelectNotification);
  }

  Future onSelectNotification(String payload)async{
    print('payload');
  }

  Future _showNotificationWithDefaultSound(heading,content) async {
  var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
      'your channel id', 'your channel name', 'your channel description',
      importance: Importance.Max, priority: Priority.High);
  var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
  var platformChannelSpecifics = new NotificationDetails(
      androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
  await flutterLocalNotificationsPlugin.show(
    0,
    heading,
    content,
    platformChannelSpecifics,
    payload: 'Default_Sound',
  );
}

Ответы:


1

https://medium.com/vrt-digital-studio/flutter-workmanager-81e0cfbd6f6e
надеюсь, это поможет или вы можете использовать fcm https://fireship.io/lessons/flutter-push-notifications-fcm-guide/

однако я начинаю. Я не знаю об этом слишком много ... извините, если это вам не поможет.

06.02.2020
  • я думаю, пока вы подключены к Интернету, он работает 08.02.2020
  • Новые материалы

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...