@reactnative_ru

Страница 195 из 878
Nikita
08.06.2017
08:48:00
Ребята, подскажите плиз, мне нужно обновлять данные каждые 24 часа (стучатся на сервер), если я правильно понимаю, это должен быть сервис, верно? В голову приходил костыль запускать таймер который часы отсчитывает в приложении и сохранять время на диск, потом сравнивать.

Nikita
08.06.2017
08:49:37
так то да, а если приложение сверну?

Roman
08.06.2017
08:49:48
свернешь - все будет ок

Google
Nikita
08.06.2017
08:49:53
и часы собъются)

свернешь - все будет ок
таймер сдохнет же?

Roman
08.06.2017
08:50:11
если свернешь - нет

Nikita
08.06.2017
08:50:15
ой

закрою нафиг

Roman
08.06.2017
08:50:29
так а как ты тогда хочешь обновить данные? :)

ЧТО у тебя будет обновлятть данные?

Nikita
08.06.2017
08:50:42
сервис же

ну или я что то не понимаю, вроде как есть сервисы которые работают когда апликуха в отключке?

Алексей
08.06.2017
08:51:34
Dima
08.06.2017
08:54:13
может я тоже не понял задачи, либо неперепроверил что-то

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

Алексей
08.06.2017
09:05:54
уже надо список экспериментов вести)

Google
Yaroslav
08.06.2017
09:19:49
С nfs кто-то работал поглубже уровня readtag, writetag?

Nikita
08.06.2017
09:37:16
Сервис в бэкграунде тоже убьется
тогда второй вариант чтоли?

Denis
08.06.2017
09:37:17
Точнее, может быть убит

В андроиде все сложнее в этом плане

тогда второй вариант чтоли?
твоя приложуха может быть прибита в любой момент времени

В нативе есть способы это обойти

Nikita
08.06.2017
09:38:35
Denis
08.06.2017
09:38:38
SyncAdapter юзать можно, foreground service как вариант (Но это лютый костыль)

Nikita
08.06.2017
09:38:52
почему лютый костыль?

Denis
08.06.2017
09:39:10
почему лютый костыль?
Потому что он должен будет всегда висеть и чекать время.

Есть вариант через AlarmManager сделать

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

Nikita
08.06.2017
09:40:45
это на ведре AlarmManager?

а на яблоке?

Denis
08.06.2017
09:41:08
а на яблоке?
А яблоко я не знаю)

Но и там с бэкграундом не все гладко, как я слышал от знакомых. Но попроще чем в ведре

Nikita
08.06.2017
09:42:42
ты остановился таки на AlarmManager для ведра?

Google
Nikita
08.06.2017
09:42:53
я юзаю вроде

Denis
08.06.2017
09:43:18
ты остановился таки на AlarmManager для ведра?
Я сделал обычный foreground service неубиваемый

Не очень решение, да, но время поджимало :(

Nikita
08.06.2017
09:43:58
а если бы не поджимало?

:)

Denis
08.06.2017
09:44:25
а если бы не поджимало?
То задрочил бы AlarmManager с установкой таймеров нормальных

оно отличается на апи 16, 19 и 21+

я юзаю вроде
Сорцы reactContext не копал, но по виду - обычная помойка в виде Handler.post()

Nikita
08.06.2017
09:46:26
значит надо искать что то более адекватное

Алексей
08.06.2017
09:58:29
а на яблоке?
на яблоке вообще жестко с бэкграундом, в любой момент может убить

Denis
08.06.2017
09:58:45
Везде закручивают гайки

Denis
08.06.2017
09:59:00
Когда сервис в бэкграунде жрет батарейку/проц - грустьпечаль

Алексей
08.06.2017
09:59:02
вообще не оч круто держать в бэкграунде, батарею жрет же

Denis
08.06.2017
09:59:18
Egor
08.06.2017
09:59:23
на яблоке надо еще заслужить

Алексей
08.06.2017
09:59:33
Egor
08.06.2017
09:59:45
там система сама решит, когда запустить фоновую таску для получения новых данных

Алексей
08.06.2017
09:59:52
Если правильно юзать - не жрет)
процесс висит, значет жрет)

Google
Egor
08.06.2017
09:59:53
а юзер еще и отключить может это

Denis
08.06.2017
09:59:59
Doze на андроиде, лол

Egor
08.06.2017
10:00:18
и вроде в режиме энергосбережения совсем ничего не запускается

Denis
08.06.2017
10:00:19
Даст тебе раз в 2 часа окошко на 20-30 сек для апдейта данных и все

Egor
08.06.2017
10:00:24
знаю

Admin
ERROR: S client not available

Egor
08.06.2017
10:00:59
вроде того, "но это не точно" ©

временной интервал система сама подстраивает

если приложение юзеру не интересно по мнению системы - оно будет реже получать апдейты

на прошлой WWDC были вроде сессии про это, или даже еще раньше

про Apple Watch была точно, смотрел сам, и там показывалось, как это на часах работает - на телефоне принципы почти те же

Nikita
08.06.2017
10:04:00
если приложение юзеру не интересно по мнению системы - оно будет реже получать апдейты
тоесть это так выглядит - я задаю задачу сделать тото и я не могу говорить системе как часто это делать, она сама за меня решает, так?

или сложнее?

Egor
08.06.2017
10:04:28
you are welcome https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

Nikita
08.06.2017
10:05:57
окей парни) но прежде чем читать уже 2 статьи (https://developer.android.com/training/sync-adapters/creating-sync-adapter.html и https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html) и писать свой модуль, подскажите может уже есть чтото более менее годное?)

или я за себя не ручаюсь)

Egor
08.06.2017
10:07:12
For background download apps: • The system wakes the app at opportunistic moments to begin downloading new content.

я на RN ничего не юзал такого

только таймер для активного состояния использую

Google
Egor
08.06.2017
10:07:55
react-native-timer

Nikita
08.06.2017
10:08:25
я на RN ничего не юзал такого
а что скажут остальные эксперты?)

Ptench?
08.06.2017
10:35:12
Где нибудь нужны новички новички? Не могу ничего найти

Andrey
08.06.2017
13:05:29
Ребят, а чтоб такую штуку запилить и отправлять линки в фейсбук, твиттер, смс, e-mail, чего посоветуете?



кто как реализовывал?

Anton
08.06.2017
13:06:22
https://facebook.github.io/react-native/docs/share.html ?

Denis
08.06.2017
14:29:31
Не нативных карт, а именно Leaflet
Нет никаких новостей? Никто не использовал ненативные карты и кастомные тайлы?

Dima
08.06.2017
14:34:53
использовал

map который был в ядре, даже отправлял пулл реквест, который позволял кастомные тайлы и тд

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

https://github.com/airbnb/react-native-maps/blob/8e78aa3923f6530c36054d765cbb1b63638031f4/example/examples/CustomTiles.js#L50

зачем там webview? или тогда вопрос по-другому, что не работает?

Roman
08.06.2017
14:38:35
Dima
08.06.2017
14:39:12
ну там под капотом обычные нативные карты, я не помню, по умолчанию url, но может как file:// можно

а нет, там google maps похоже

в MapKit точно можно с file://

у гугла надо смотреть https://developers.google.com/maps/documentation/ios-sdk/tiles

Страница 195 из 878