背景介绍:我们 APP ( react-native 写的)的用户是某船舶公司船员,需要上传各种轮船信息,然后海上的信号大家也都知道。
现在有个需求:如果上传失败,能够在网络恢复的时候自动上传。
老板的意思最好能做到网络恢复就发送,不管这个时候 APP 在前台后台,手机锁没锁屏。
让我调研下,并给出上传失败的解决方案。
我的方案是做数据缓存,下次打开的时候提示他上次失败了,点击继续发送。老板让我去沉淀沉淀,研究下后台上传数据的方案,说他已经在网上看到相关解决方案了...
老哥们,有方案吗教教我
背景介绍:我们 APP ( react-native 写的)的用户是某船舶公司船员,需要上传各种轮船信息,然后海上的信号大家也都知道。
现在有个需求:如果上传失败,能够在网络恢复的时候自动上传。
老板的意思最好能做到网络恢复就发送,不管这个时候 APP 在前台后台,手机锁没锁屏。
让我调研下,并给出上传失败的解决方案。
我的方案是做数据缓存,下次打开的时候提示他上次失败了,点击继续发送。老板让我去沉淀沉淀,研究下后台上传数据的方案,说他已经在网上看到相关解决方案了...
老哥们,有方案吗教教我
|
ShuraNov 21, 2024
1
安卓,可以写个前台服务,ios 就没辙了。
|
|
chachiNov 21, 2024
2
这种 app 不应该工业设备吗
|
|
NoOneNoBodyNov 21, 2024
3
需求是网络恢复自动发送,但不需要用“发送”这个数据来检测网络啊,只要检测到 True 就可以通过事件驱动发送任务了吧?
前台后台这个问题才是手机的事,这个不懂,但肯定有方法的 |
|
4
老板自己找到方法了为啥不直说,还让你沉淀沉淀?
|
|
5
"说他已经在网上看到相关解决方案了" 让他发你参考呗
|
|
HangoXNov 21, 2024
6
让老板给出网上的方案,你自己参考一下
android 目前还可以,直接挂前台服务,监听网络变化 或者用账号同步服务,或者直接用 firebase 自己带的 |
|
7
@null113 他看到的是解决方案是 APP 申请后台常驻权限,然后监听网络信号,信号好的时候发送数据。我跟他说常驻也不是一直常驻的,而且我感觉锁屏状态下还能发送数据应该做不到吧
|
|
manamiNov 21, 2024 via Android
8
手机病毒为啥都可以 /思考 ing
|
|
InkStoneNov 21, 2024
9
挂后台必须用户手动允许 app 后台运行,不然会被系统杀进程
|
|
10
老板看到的解决方案是安卓申请后台常驻权限,然后监听网络信号,信号好的时候发送数据。我没做过 APP 保活的功能,不确定能不能做到,而且就算安卓可以做到,iOS 可以做到吗,因为我们用的 RN ,业务得统一,还有一个问题就是锁屏状态下也能保活吗?
|
|
wu67Nov 21, 2024
14
你去看看那个短信转发工具呗. 印象中分好几步来完成后台常驻呢.
|
|
harryWebbNov 21, 2024
15
参考一下流氓安卓软件的方案。。。
时不时弹出来让用户点一下,然后常驻,还有的直接更换桌面常驻 ios 是肯定做不到的,别想了,你老板要是能 ios 做到,可以把这个方案拿去卖给黑产,比你做个什么 app 值钱多了 |
|
myderrNov 21, 2024
16
建立局域网服务器,连 WiFi 上传到局域网的服务器,服务器来处理数据
|
|
screwrNov 21, 2024
18
电池优化白名单,加入自启动,锁定后台。这些都需要用户参与,用在消息推送上还可以,app 能比较稳定接收到推送。
|
|
19
我在安卓平板上挂的 alist, 设置了之后基本上不会被杀. 参考一下.
https://github.com/jing332/AListFlutter |
|
tool2dxNov 21, 2024 via Android
21
adb 直接运行 elf 可以保活,但是需要用户手机开启开发者模式,感觉没那么通用。
|
|
capgreyNov 21, 2024
22
老板的网上:拿了个套壳 GPT 随便问了一下。GPT 热情回答:当然可以!
|
|
idonttellyouNov 21, 2024
23
Android 看看 WorkerManager 能不能用
|
|
noparking188Nov 21, 2024
24
https://github.com/aspen-cloud/triplit
这个咋样呢 Real-time Sync: Triplit provides real-time data synchronization between server and browser with incremental updates and conflict resolution. Local Caching: It includes a full-fledged client-side database for local caching, ensuring fast interactions and offline mode. |
|
noparking188Nov 21, 2024
25
@noparking188 Offline-mode with automatic reconnection and consistency guarantees
|
|
zihuyishiNov 21, 2024
26
你参考下音乐软件怎么实现的,把自己伪装成音乐 app 常驻后台就行了。以前很多流氓 app 也是这么实现的,所以就会出现你听着歌打开这个软件歌停了
|
|
opengpsNov 21, 2024
27
既然允许网络恢复后再发送,那这时效性稍微推迟一下也可以允许下次打开再发送。
所以真实需求是后续补发,而不是网络恢复就补发这个伪需求 |
|
28
比较简单的实现方法,船上放个中间服务器,弄个树莓派估计都可以,在上面放个消息队列,手机的数据传给中间服务器,中间服务器等连上主服务器之后进行消费
|
|
baolinliu442kNov 21, 2024
29
他都看到了不直接告诉你,让你沉淀
|
|
ahzjmNov 21, 2024
30
微信能做到的你就能做到
|
|
Danmen123Nov 21, 2024
31
我只知道安卓,国产系统专治不服,后台各种杀死。如果不是国产系统的话,workManager 刚好可以解决你的需求。
|
|
ShadowPowerNov 21, 2024
35
Android 可以用常驻通知+Service 保持前台运行,iOS 可以通过推送唤醒后台 APP ,联网的时候就可以收到推送。
|
|
YsHaNgNov 21, 2024
36
@harryWebb 不是 iOS 开发 不确定好不好用 background tasks API https://developer.apple.com/documentation/backgroundtasks https://forums.developer.apple.com/forums/thread/693337 但是使用一些类似 Google photos 群晖 photo 只要后台卡片不划掉自主备份都没问题 不用管保活拉起
|
|
yidevNov 21, 2024
37
不动 ios, 用个 vpn 方式行不行?那些代理软件都可以常驻后台啊
|
|
cheng6563Nov 21, 2024
38
Android 让用户把 App 加入电池白名单然后开前台服务就行了。不同系统设置不同,尤其是国产系统可能要到多个地方设置。
iOS 可以用一些后台短期运行的 API 处理,这些后台时间都有限制,不过一般用来处理一些数据上传够用了。比如后台应用刷新,地理围栏之类的。 iOS 要后台常驻需要播放声音,这样用户一旦开个其他音频 App 就不行了。 |
|
lostwolfkfNov 21, 2024
39
1 ,常驻后台,要求用户自己设置不杀进程。2 、保活
|
|
cwccNov 21, 2024
40
打开 App 后如果开启“在线时自动传输”的功能后,就保持应用请求开启定位服务,然后好像就能驻留后台了?(依稀记得当初 iSH 应用想要在 iOS 保活也是这么搞来着,就 cat 下/dev/location )
|
|
anjingdexiaocaiNov 21, 2024 via Android
41
android 的话,只有前台服务可以解决,至于电池优化,自启动开启,这些用户不一定买账。
|
|
SolixNov 21, 2024
42
不能用电脑吗哈哈,右下角最小化挂个程序就行了
|
|
AkaGhostNov 21, 2024
43
这个让我想起了 WakeUp 课程表有个上课提醒功能,简单设置一下提醒就满准确的,就是会请求一个 "闹钟和提醒" 的权限。
权限描述如下: 允许设置闹钟和提醒 允许该应用设置闹钟以及安排在特定时间执行某些操作。此权限开启后,该应用将在后台运行,可能会消耗更多电量。 若关闭此权限,该应用设置的现有闹钟将不会响起,安排在特定时间执行的现有活动也不会执行。 |
|
champaulmmcNov 21, 2024
44
安卓很简单,后台权限全开,后台一直播放无声背景音乐就行,会一直保活。IOS 费劲,需要一直定位或者看快捷指令,检测到网络就执行 APP 步骤,IOS17 可以默认执行不需要权限
|
|
jingruiNov 22, 2024
45
Expo BackgroundFetch
试试这个吧 |
|
skyyanNov 22, 2024
46
你先解决保活问题再说吧
|
|
hstdtNov 22, 2024 via iPhone
47
参考长途货运 app 的司机端实现方案,iOS 用 location manager 触发上传
|
|
auhahNov 22, 2024
48
android 吗?直接发送前台通知不就保活了么
|
|
HangoXNov 22, 2024
49
@champaulmmc iOS 不是也可以放歌吗?放歌可以后台
|
|
HangoXNov 22, 2024
50
@Jed2020 https://firebase.google.com/docs/database?hl=zh-cn firebase 的 realtime database ,自己会处理同步事件,因为被谷歌收购了,有 google play 的手机会非常容易处理同步的事情,同步会由 gp service 执行
|
|
meteora0tkvoNov 22, 2024
51
可以参考流氓软件的做法,申请一个浮窗,颜色透明,大小为 1 像素
|
|
realpgNov 22, 2024
52
既然是必备服务,那么直接发送失败出个浮窗提示失败等待网络恢复就好了,也不用透明,毕竟这是工作用的,有浮窗很正常吧
|