私はenableremotenotificationtypesを認識していますが、それは役に立ちません。ユーザーが1.プッシュ通知を受け入れるかどうかを知らせてください。その後、プッシュ通知を無効にします。または、2.プッシュ通知を拒否します。または3.許可を求める青いダイアログが表示されませんでした。これらの3つのケースを区別する方法が必要です。ユーザがプッシュ通知の許可(ios)を求めるダイアログを見たことがあるかどうかを確認するには
本当にありがとうございます。
私はenableremotenotificationtypesを認識していますが、それは役に立ちません。ユーザーが1.プッシュ通知を受け入れるかどうかを知らせてください。その後、プッシュ通知を無効にします。または、2.プッシュ通知を拒否します。または3.許可を求める青いダイアログが表示されませんでした。これらの3つのケースを区別する方法が必要です。ユーザがプッシュ通知の許可(ios)を求めるダイアログを見たことがあるかどうかを確認するには
本当にありがとうございます。
これは私がこのような状況に対処する方法です - 私は初心者の何かですので、これは最適ではない可能性がありますが、それは私のために働きます。 int
プロパティpushNotificationSeen
を作成します。ユーザーがダイアログを表示して拒否した場合は、pushNotificationSeen
を1に設定します。ユーザーがダイアログを表示してそれを受け入れる場合は、pushNotificationSeen
を2に設定します。次に、コードの次の行でコードの他の場所):
-(void)saveData
{
if (self.pushNotificationSeen)
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setInteger:self.pushNotificationSeen forKey:@"seen?"];
[defaults synchronize];
}
}
次に、次の行をviewDidLoad
に追加します。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
self.pushNotificationSeen = [defaults integerForKey:@"seen?"];
、ユーザーが持っているかself.pushNotificationSeenが0であるかどうかをチェックすることによって行われていない、1かを把握することができ、または2
私は、これは十分な情報であると思います - 私はあまり寝ないで走っています。私が混乱しているなら、私に知らせてください。私は明確にすることができます。
解決策は少しハックですが、機能します。
//Request notification permission
UIUserNotificationSettings *notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
//Request notification permission again, but with a category with no actions
UIMutableUserNotificationCategory *category = [[UIMutableUserNotificationCategory alloc] init];
category.identifier = @"com.xyz.markNotificationPopupShownCategoryIdentifier";
UIUserNotificationSettings *notificationSettingsWithCategory = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:[NSSet setWithObject:category]];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettingsWithCategory];
didRegisterUserNotificationSettings:(UIUserNotificationSettings *)アプリデリゲートでnotificationSettingsメソッドが2回呼び出されます、と関係なくnotificationCategoryのないものとnotificationCategoryと1 - あなたは二つの異なるnotificationSettingsためregisterUserNotificationSettingsを呼び出す必要があります2番目の呼び出しの後、許可通知のユーザーの回答、現在の通知設定にはカテゴリが含まれます。あなたはiOSの開発用証明書を持っている場合、私はあなたを考えるのiOS 6の変更履歴をご覧ください
if ([UIApplication sharedApplication].currentUserNotificationSettings.categories.count > 0) {
NSLog(@"Notifications permissions has been asked");
} else {
NSLog(@"Notifications permissions hasn't been asked");
}
ダイアログが表示されなくても、私のために1を返します –
を:限り、カテゴリ数が0よりも大きいと、あなたは通知許可ダイアログが表示されていることを確実に知ることができます答えが見つかります。 –
あなたは詳しく教えていただけますか? – user1657624
は、developer.apple.comにアクセスしてください。 iOS 6ベータ版のページに移動します。チェンジログを読んでください。私はライセンス契約のためにここで詳述することはできません。 –