web-dev-qa-db-ja.com

ユーザーがアプリのプッシュを無効にしている場合、サイレントリモート通知は可能ですか?

私の設定タブバーで:

  1. API応答に基づいてオフまたはオンにできる機能固有のスイッチがあります。
  2. Webサイトからは、管理者のみがON/OFFを許可されます。
  3. 設定タップで毎回/ user API呼び出しを行ってユーザーの現在の設定を確認できますが、ユーザーが既に設定を行っている場合、設定タップで毎回UIを更新してAPIを呼び出しても音が鳴らないなどの欠点がいくつかあります完璧なソリューション。

より良い解決策は、必要なときに設定UIを更新するためにAPI呼び出しを行うために使用できるサイレントプッシュ通知を送信することだと思います。

しかし、ユーザーがプッシュ通知を無効にしている場合、サイレントプッシュは引き続き受信されますか?そのような状況に対処するための推奨されるアプローチは何ですか?

35
Tariq

短い答え、yes

IOS 8のアプリ開発者にとってエキサイティングな新しい機会は、Appleは、ユーザーが通知をオプトアウトした場合でも「サイレント」プッシュを配信することです。また、「サイレントプッシュ」は、ニューススタンドアプリ:すべてのアプリは、この機能を利用してバックグラウンドでコンテンツを更新し、ユーザーがアプリを開いた瞬間に、可能な限り最新の応答性の高いエクスペリエンスを作成できます。

でも….

ユーザーは、「Background App Refresh」コントロールを使用して、「サイレントプッシュ」を処理するアプリの機能をオフにすることができます。 Appleプッシュ通知サービス(APN)は「コンテンツ利用可能」とマークされたプッシュを電話に配信しますが、OSはアプリを起動してそれを受信せず、事実上床にドロップします)ただし、「バックグラウンドアプリの更新」のオプトアウトは、通知に直接関連付けられていないあまり知られていない機能です。通知設定でこの設定にアクセスすることはできません。

アプリケーションを構築するときは、このことに留意してください。

ソース: https://www.urbanairship.com/blog/watch-list-ios-8-opt-in-changes

54
gmat1014

このマトリックスが役立つ場合があります。左側に、「didReceiveRemoteNotification:」メソッドが呼び出されるかどうかが表示されます。他の2つの列は、アプリの設定に関連しています。設定-> YourApp。 yourAppが通知とバックグラウンドアプリの更新をサポートしている場合。マトリックスを調べて、アプリがサイレントプッシュを受信するタイミングを確認します。

24
GameBegins

他の答えは良いです。しかし、それらは公式の答えではありません。

officialの回答は Notifications WWDC 2015の新機能 video:

サイレント通知はデフォルトで有効になっています。ユーザーはあなたを承認する必要はありません-しないアプリにそれらを使用する許可を与え、ユーザーに許可を求めることなく使用を開始できます。ただし、サイレント通知はバックグラウンドアプリの背後にあるメカニズム更新です。ユーザーはいつでも設定にアクセスして無効にできることがわかっています。そのため、常に利用可能であることに頼ることはできません。ユーザーがそれらをオフにするかどうかはわかりませんが、通知はもうありません。これは、サイレント通知が最善の努力で配信されることも意味します。つまり、通知がユーザーのデバイスに到着すると、システムはいくつかの選択を行います。

詳細については、 this image および this answer を参照してください

0
Honey