22

次の場合を区別することは可能ですか?

  1. iOS ユーザーがユーザー通知許可を明示的に拒否している、および
  2. iOS ユーザーは許可を求められたことはありませんか?

私の状況: 過去に、ユーザー通知の許可を求めたことがありますが、自分で要求を追跡したことはありません。その後、通知設定を登録するのをやめました。さて、ユーザー通知を再紹介したいと思います。

アプリで重要なイベントが発生した後、私の計画は、ユーザー通知をオプトインする利点を説明する何らかの UI を表示することです。ただし、ユーザーが既に拒否している場合は、Settings.app に移動できる別の UI を表示したいと思います。

現在、-[UIApplication currentUserNotificationSettings]現在の設定を取得するために使用していますが、これはUIUserNotificationTypeNone上記の両方のケースで返されるようです。

4

5 に答える 5

3

いいえ

そして、これは意図的に行われていると思います。通常のシナリオは、アプリを起動するたびにリモート通知を登録することです。つまり、ユーザーがアプリを開くたびに権限ダイアログが表示されないようにする必要があります。iOS はこれを自動的に行います。ただし、アクセス許可を要求する前に追加の画面を表示する場合、Apple は、ユーザーが過去にアクセス許可を拒否したかどうかを知ることを許可できないため、必要なたびにユーザーが設定を通じてアクセス許可を有効にする方法を説明する画面を表示できます。これにより、Apple がユーザーを苛立たせないようにしたことはすべて取り消されます。

あなたの場合、同じ戦略に従う必要があります。両方のシナリオで 1 種類の説明画面のみを表示し、ユーザーの選択を に保存しNSUserDefaultsて、再度表示する必要がないかどうかを確認します。以前にアクセス許可を拒否したユーザーには、アクセス許可ダイアログが表示されません。新規ユーザーには 1 つの利点がありますが (これは明らかに達成しようとしています)、ユーザーがキャンセルした場合、説明画面を何度も表示し続ける可能性があります。

于 2015-03-19T18:32:18.517 に答える