1

次のコードを使用してプッシュ通知を有効にしたiOSアプリがあります

 if ([application respondsToSelector:@selector(isRegisteredForRemoteNotifications)])
{
    // iOS 8 Notifications
    [application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];

    [application registerForRemoteNotifications];
}
else
{
    // iOS < 8 Notifications
    [application registerForRemoteNotificationTypes:
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];
}

このアプリを iOS9 デバイスで実行すると、最初は問題なく許可を求められますが、iOS7、iPhone 4 で使用すると、許可を求められませんが、通知は問題なく受信され、問題を理解できません。

4

1 に答える 1

3

許可ダイアログが表示されていないにもかかわらず、ユーザーがプッシュ通知を受信して​​いることを確認すると、次のシナリオが必要になります。

  1. 彼は、プッシュ通知を承認した iPhone 4s に以前のビルドを持っていました。
  2. 彼はすぐに以前のビルドをアンインストールし、あなたが彼に与えた最新のビルドをインストールしました。
  3. その結果、プッシュ通知のアクセス許可を求めるダイアログは表示されませんでした。アクセス許可は以前に付与されていたためです。

Apple Technical Note 2265によると:

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

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

デバイスからアプリを削除します。デバイスの電源を完全にオフにしてから、再びオンにします。[設定] > [一般] > [日付と時刻] に移動し、1 日以上先の日付を設定します。デバイスの電源を完全にオフにしてから、再びオンにします

設定メニューでアプリ固有のアクセス許可を確認するようにユーザーに依頼すると、プッシュ アクセス許可が表示されます。そうでなければ、彼はプッシュ通知をまったく受信していなかったでしょう.

于 2016-01-11T10:00:26.137 に答える