我有一个小部件,它会在一天中定期从服务器检索更新,但是如果用户实际查看它,则希望它立即再次更新。这总是在iOS 8/9中运行良好... viewWillAppear特别是当视图即将出现时触发。
但在iOS 10中,它似乎也会在其他时间发生。不知道什么时候。但突然之间,我在更新服务上获得了大约5倍的点击量,这是一项付费服务,所以这是一个真正的问题。
在Today小部件上,有没有办法保证小部件实际可见?或者,至少,今日视图实际上是可见的?
答案 0 :(得分:6)
我敢打赌,5倍的点击率是因为用户现在如何在iOS 10上解锁他们的设备。从锁定屏幕轻扫可显示用户小部件,而不是解锁其设备。如果您在viewWillAppear
中请求,那么每当用户肌肉记忆试图以旧方式解锁设备时,通过轻扫,您的小部件就会发送服务器请求。您可能需要为请求设置计时器,或添加刷新按钮。
答案 1 :(得分:2)
我认为你真的需要重新考虑这个问题,而且我对你迄今为止给出的建议表示强烈反对。让我解释一下:
我从来没有习惯使用小部件,但是从iOS 10开始,我现在一直使用它们。我不认为我是唯一一个 - 他们更多的是前沿和中心,更容易到达。我说5x中有很大一部分是真正使用你的小部件的人。
虽然人们确实以旧的方式解锁他们的设备,但如果他们还没有,人们将很快成长出来的习惯。我不认为修改你的小部件以回应短期习惯是一个好主意。
大多数其他小部件会自动刷新,因此添加刷新按钮会违背良好的用户界面,人们的期望以及Apple打算如何使用小部件。试图与系统作斗争并不是一个好主意。添加刷新按钮违背了小部件是查看更新的超快速方式的想法。
作为一种解决方案,我认为您需要查看不同的服务器选项(AWS非常便宜)。查看您要发送的数据 - 查看是否可以减小大小,或仅发送已更改的数据。添加最小刷新时间,即在10分钟内不要多次刷新。如果您还没有,请通过添加一些小而真正有用的高级功能来抵消服务器成本,从而看看您的应用的货币化。