2016-10-19 4 views
0

私のアプリの中に未読のメッセージがあるという兆候を見せたいと思います。私は、表示する新しいコンテンツがあることを確認するために、サーバーへのバックグラウンド要求を行っています。いつサーバーから通知データを読み込む必要がありますか?

よくわからない - サーバーのアップデートの頻度を確認する必要があります。私は私のViewControllerのviewDidLoadメソッドの更新をチェックするのがいいと思った。しかし、アプリはバックグラウンドになり、数日後に戻ってからviewDidLoadはトリガーされません。それ以外の場合は、私はviewWillAppearの内部に置く - それは必要以上に頻繁に使用する必要があります。

どうすればよいですか?

+0

AppDelegateの 'applicationWillEnterForeground'メソッドを使用して、アプリケーションがバックグラウンドから返されたときにサーバーに更新を依頼することができます。 – alexburtnik

+0

これは通知ではなく、ポーリングです。 ? APNSを使用できませんか? – Larme

答えて

3

サイレントプッシュ通知を使用して同期をトリガーすることもできます。サイレントプッシュ通知がデバイスに届くと、ユーザーは通知について何も知らない。しかし、あなたのアプリは通知を受け取り、アプリは新しいコンテンツをダウンロードしてユーザに提示する時間が与えられます。詳細については、https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/TheNotificationPayload.htmlの「サイレント通知の設定」セクション

+0

ありがとう、オルガ。ユーザーが自分のアプリにプッシュ通知を使用することに同意しない場合はどうなりますか? – moonvader

+0

もちろん、プッシュ通知は届きません。あなたは、なぜこの許可が必要なのか、また拒否の場合にユーザーが失うものを説明することで、ユーザーを有効にすることができます。ユーザーが同意しない場合は、コンテンツを1日1回(または必要に応じてより頻繁に)更新できます。最後の更新のタイムスタンプを保存し、viewWillAppearの現在の日付と比較するだけです。 –

関連する問題