2016-11-07 7 views
-4

アプリが閉鎖されてもUserDefaults.standard.value(forKey: "lifes")に1人の人生を追加してユーザーに通知する仕組みを実装したいと考えています。N時間ごとに人生を追加する

通知について記事を読むと難しくありません。しかし、もし私が12時間ゲームにいなければ、人生の価値をどのように高めますか?私は戻ってくるときに+3 lifesを得るべきです。

+0

4時間ごとに通知することができます(煩わしさはありますが...)。また、アプリケーションが最後に開いてから何時間も費やした時間を計算すると、すべての人生を一度に追加できますあなたは 'lives + = hours/4'か何かをすることができます。 – holex

答えて

3

ゲームが一時停止(UIApplicationWillResignActive)したときにイベントが発生し、ユーザーのデフォルトの時間を書き留めることができます。ゲームが再開すると(UIApplicationDidBecomeActive)イベントが発生し、何時であるかを確認したり、非アクティブになってから何時間経過したかを確認できます。

+0

私は上記の答えがうまくいくことを尊敬しますが、デバイスの現地時間に完全に依存しているため、提案されたソリューションが壊滅的になり、災害につながる可能性があります。ユーザーがアプリをバックグラウンドに置き換えて24時間を変更してアプリを再起動するとどうなるのでしょうか?あなたはアプリを起動するたびに、+6人生を間違って追加することになります。時間が経過し、フォアグラウンドで定期的にタイムスタンプについてサーバーに通知する:)チャットアプリケーションと同じように:) –

+0

@SandeepBhandariそのようにしかインターネット接続を使用しないのですか?:(私はしたくない... – Arti

+0

@SandeepBhandariもしそれが起これば、NSCalendarから日に日に変更された通知を受け取ってそれに応じて補償することができます。 – matt

1

アプリが「閉鎖されている」場合は不可能です。

この動作を実現する唯一の方法は、プッシュ通知(サーバーではなくアプリケーションによってプッシュされる)を使用することです。

thisおよびthisアップルのマニュアルを参照してください。


私の意見では、あまりにも頻繁に通知が邪魔になるため、ユーザーはあなたのアプリを削除します。

関連する問題