web-dev-qa-db-ja.com

iOS-最初の不承認後にプッシュ通知を有効にするように依頼する

最初の不承認後に、アプリ内から「XXXXXからプッシュ通知を送信したい」というポップアップを強制表示できるかどうかを知りたい。使用例は次のとおりです。

  • ユーザーはアプリをインストールし、プッシュ通知に関するアラートを受け取り、まだアプリを知らない/信頼していないため拒否します。

  • 彼らはアプリを使用し、何かが起こったときにアラートを受け取るようにアプリ内で積極的に要求します(たとえば、買いたいものは売り切れたため、在庫が戻ったときにアラートを受け取りたい)。

  • そのため、ユーザーは特定の何かについて通知するようアプリに要求しましたが、オペレーティングシステムレベルでプッシュ通知を無効にしました。

  • そのため、ユーザーがアラートを要求したが、初回実行時にアラートを拒否したことを検出した場合、アラートを機能させるためにこれを通知し、プッシュ通知をオンにする必要があります。

  • 理想的には、この時点で(XXXXがプッシュ通知アラートを送信したい)を強制します(アプリをインストールしてから2回目)。

  • プランbは、希望するアラートを受信するためにシステム設定に移動して手動でオンにする必要があることを伝える独自のメッセージを表示することだと思います。これは理想からかけ離れています。

任意の助けをいただければ幸いです。ありがとう。

38
Joel

IOSにアラートを再度表示させることはできません。より良いアプローチは次のとおりです。

  1. 起動時にプッシュ通知に登録する必要があるかどうかを示すフラグをNSUserDefaultsに保持します。デフォルトでは、フラグはfalseです。
  2. 起動したら、フラグを確認します。正しい場合は、すぐに登録してください。それ以外の場合は、登録しないでください。
  3. ユーザーがプッシュ通知を発生させる何かを初めて実行するときは、プッシュ通知に登録し、NSUserDefaultsにフラグを設定します。

このように、ユーザーがプッシュ通知アラートを受け取ると、ユーザーはそれを受け取った理由をある程度理解し、実際に「はい」と言う場合があります。

52
rob mayoff

私も同様の問題に直面しています。たくさん検索した後、私はあなたがプランBと呼んでいることをすることにしました。つまり、ユーザーに、より良い体験のためにプッシュを有効にする必要がある、などの警告を表示します。

必要なプッシュタイプが有効になっていることを確認するには、次の方法を使用します。

- (UIRemoteNotificationType)enabledRemoteNotificationTypes

IApplicationリファレンス

これはクリーンなソリューションだと思います。最初にリクエストを受け入れた後、ユーザーがプッシュをオフにした場合、このシナリオでもこのことは機能します。

4
Sailesh

それを行う最善の方法は、(ゲームを作っている場合)先制的な質問をすることです(たとえば、作物が収穫される準備ができたときに通知を受け取りますか?-はい-いいえ) 「はい」と答え、ネイティブiOSプッシュポップアップを起動します。その後、ユーザーの目標到達プロセスに沿って複数の質問を重ねていくと、最終的にはすべての質問を把握できます。

3
Jeremy