Flock是一个相当新的iOS应用程序,来自
Bump的人,它有一个有趣的功能.它以某种方式知道其他应用程序何时拍摄照片,通知用户(以通知中心的方式),并要求用户将其分享到相册中.当然还有其他有趣的功能,但我对我正在开发的另一个应用程序的这个功能特别感兴趣.
我无法看到API如何直接促进这一点.我仔细查看了通知API文档,应用程序当然可以注册以在将来的日期/时间向用户显示通知,因此当时用户可以打开…但我找不到任何系统通知当拍照时.通知API还允许服务器生成的通知,但一次又一次,我不知道Flock的服务器端如何知道用户何时在不同的应用程序中拍照.
几天前我安装了应用程序,而且我在拍照时似乎只收到了通知.它似乎不仅仅是每日提醒.
任何想法Flock(以及可能的其他应用程序)如何设法做到这一点?
解决方法
经过几天的观察应用程序的行为(以及大量的谷歌搜索和碰到关于文件锁定的神秘讨论),我强烈怀疑它是如何工作的:Flock只注册了
Significant-Change Location Service,它唤醒了应用并提供了一个用户更改位置时的小处理窗口.文件说:
At wake-up time,your app is put into the background and given a small amount of time to process the location data
我怀疑Flock正在检查图像库,并在添加照片时触发本地通知.这与我的经验一致,Flock给我一个本地通知〜离开家后10分钟…如果任何Bump / Flock开发者正在阅读这个,这是我整理照片的最糟糕的时间并在专辑中分享(也许我应该更频繁地使用公共交通工具).
还有一些其他有趣的SO答案here,here和here ……但是大多数情况下他们讨论本地通知(只能在特定时间安排,并且当时总会提醒用户,所以不是真的后台任务)或600秒后台处理窗口提供给用户关闭的应用程序(这当然是一项后台任务,但显然不适合每天运行一次后台任务或某些事情).
Bump开发者还提供了应用程序here的底层架构的一些线索.