9

我有一个小部件,它全天定期从服务器检索更新,但如果用户实际查看它,我希望它立即再次更新。这在 iOS 8/9 中总是运行良好...... viewWillAppear 专门在视图即将出现时触发。

但在 iOS 10 中,它似乎也发生在其他时间。不知道什么时候。但突然之间,我在更新服务(这是一项付费服务​​)上获得了大约 5 倍的点击量,所以这是一个真正的问题。

有没有办法在 Today 小部件上保证小部件实际上是可见的?或者,至少,今日视图实际上是可见的?

4

2 回答 2

6

我敢打赌,5 倍的点击量是因为用户现在如何在 iOS 10 上解锁他们的设备。从锁定屏幕滑动会显示用户小部件,而不是解锁他们的设备。如果您在viewWillAppear每次用户肌肉记忆尝试以旧方式解锁设备时请求,通过滑动,您的小部件正在发送服务器请求。您可能想要为请求设置一个计时器,或者添加一个刷新按钮。

于 2016-11-04T11:59:05.313 回答
2

我认为你真的需要重新考虑这一点,我强烈不同意你迄今为止得到的建议。让我解释:

  • 我从不使用小部件,但从 iOS 10 开始,我现在一直在使用它们。我不认为我是唯一的一个——他们更靠前和靠中,更容易到达。我想说的是,5x 中有很大一部分是现在真正使用您的小部件的人。

  • 尽管人们仍然以旧方式解锁他们的设备,但这只是人们很快就会养成的习惯,如果他们还没有的话。我不认为修改您的小部件以响应短期习惯是一个好主意。

  • 大多数其他小部件会自动刷新,因此添加刷新按钮与良好的 UI、人们的期望以及 Apple 想要小部件的工作方式背道而驰。试图对抗系统不是一个好主意。添加刷新按钮与小部件是查看更新的超级快速方式的想法背道而驰。

作为一种解决方案,我认为您需要查看不同的服务器选项(AWS 非常便宜)。查看您发送的数据 - 看看您是否可以减小大小,或者只发送已更改的数据。添加最短刷新时间,即不要在 10 分钟内多次刷新。如果您还没有这样做,请考虑通过添加一些小但真正有用的高级功能来抵消服务器成本,从而将您的应用程序货币化。

于 2016-11-08T21:27:53.567 回答