web-dev-qa-db-ja.com

「プッシュ通知を許可する」ダイアログが一度閉じられた後に元に戻す方法は?

私はAPNに大きく依存しているアプリを構築しています。アプリの最初の起動時に、iOSはこのアプリがAPNの使用を許可されているかどうかを確認します(registerForRemoteNotificationTypes:呼び出しの結果)。ただし、いったん閉じると、このダイアログは表示されません。手動でSettings->Notifications->MyAppにアクセスして、そこで有効化/無効化する必要があります。デバッグモードでアプリを起動するたびに最初の起動時にユーザーが経験することを実際に体験する方法はありますか?

42
Schultz9999

Apple say の方法は次のとおりです。

IOSでのプッシュ通知許可アラートのリセット

プッシュ対応アプリがプッシュ通知に初めて登録するとき、iOSはユーザーにそのアプリの通知を受信するかどうかを尋ねます。ユーザーがこのアラートに応答すると、デバイスが復元されるか、アプリが少なくとも1日アンインストールされない限り、アラートは再度表示されません。

アプリの初回実行をシミュレートする場合は、アプリを1日アンインストールしたままにしておくことができます。次の手順に従うことで、実際に1日待つことなく後者を実現できます。

  1. デバイスからアプリを削除します。

  2. デバイスを完全にオフにして、再びオンにします。

  3. [設定]> [全般]> [日付と時刻]に移動し、1日以上先の日付を設定します。

  4. デバイスの電源を完全にオフにし、再びオンにします。

80
Eran

時は金なりであり、他の方法は永遠にかかります。デバッグ中にバンドルIDを何度も変更するだけで、通知が毎回新しくクエリされます。コードに満足したら、元のバンドルIDに戻ります。


以下のコメントからのキーノート:

  • プロビジョニングプロファイルを変更する必要を回避するために、他のすべての機能(IAPなど)を一時的にオフにします。
24
Albert Renshaw

IOS 9.xでは、アプリを削除して再インストールするたびにプロンプ​​トを取得できます。これは、AppStore実稼働ダウンロードとアドホックモードの両方に当てはまります。デバイストークンは毎回一意になります。

@chengsamは、これがiOS 10でも同様であることを確認しました。 @WongWrayは、これがiOS 11でも同様であることを確認しました。

18
Gomfucius

IOS10では、アプリを削除するだけでプロンプトを再度表示できるようになりました。

6
David Aanis

現在、彼らはprogrammaticがノーと言うことを決めた後にプッシュ通知を再度受け入れるようにユーザーに促す方法です。

アクセスが許可されているかどうかを確認し、表示されていない場合は、アプリケーションのプッシュ通知機能を有効にするために、プライバシー設定で手動で許可を与えることをユーザーに思い出させるビューを表示します。

5
Woodstock

私の問題はUserNotificationSettingsの登録ではありませんでした。これにより、APNは機能しましたが、背景音やバッジは機能しませんでした。

      [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
1
buckleyJohnson

プッシュ通知プロンプトが正しく表示されることをテストするだけの場合は、シミュレーターを使用します。必要なのは、アプリをアンインストールして再インストールするだけです。プッシュ通知に登録しようとすると、プロンプトが再び表示されます。

1
mofojed