Либо я делаю что-то не так, либо последние версии iOS и Android больше не поддерживают эту функцию.
Я использую (https://github.com/katzer/cordova-plugin-background-mode.git) в сочетании с плагином BLE для Ionic 3.
Мне нужно поддерживать (или находить и подключать) пару устройств Bluetooth в фоновом режиме, но похоже, что iOS особенно сильно обострит фоновое соединение BLE через некоторое время (например, 10-15 минут). Я знаю, что iOS прекращает фоновую активность через 10 минут, но предполагается, что плагин katzer позволяет процессам BTLE продолжаться в фоновом режиме.
Вот что я пытаюсь сохранить связь BLE. Мне нужно иметь возможность подключиться или обнаружить отключение от BLE, чтобы я мог сообщить на свой сервер о последней известной геолокации устройства.
this.backgroundMode.enable();
this.backgroundMode.on("activate").subscribe(() => {
this.backgroundMode.disableWebViewOptimizations();
console.log('backgroundMode activate');
window.setTimeout(() => {
this.bleLoop()
}, 60000)
});
Где bleLoop()
- это функция, которая сканирует новые устройства для подключения.
Кто-нибудь смог заставить BLE работать для подключения к новым устройствам или вызвать обратный вызов разъединения в фоновом режиме, используя ionic 3?