Kullanıcı yerel bildirimlere izin verdiyse, test etmenin kolay bir yolu yok mu? Yerel bildirimlerin gönderilmesini reddettikten sonra konsolumda bir uyarı fark ettim. İlgili olay gerçekleştiğinde, kullanıcının izin vermediği halde uygulamanın bir bildirim göndermeye çalıştığı belirtildi. Bir bildirim görüntülemeye çalışmadan önce izin verilip verilmediğini kontrol etmek istiyorum. Benim durumumdaki yorumu görün, bunu nasıl yaparım?Kullanıcının yerel bildirimlere izin verip vermediğini kontrol edin. iOS 8. Obj-C
Benim kodudur:
app = [UIApplication sharedApplication];
-(void)showBackgroundNotification:(NSString *) message {
//check if app is in background and check if local notifications are allowed.
if (app.applicationState == UIApplicationStateBackground /*&& LocalNotificationsAreAllowed*/){
UILocalNotification *note = [[UILocalNotification alloc]init];
note.alertBody = message;
note.fireDate = [NSDate dateWithTimeIntervalSinceNow:0.0];
[app scheduleLocalNotification :note];
}
}
ben şöyle kullanıcıdan izin istemi olsun:
UIUserNotificationSettings *settings;
if ([app respondsToSelector:@selector(registerUserNotificationSettings:)])
{
settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge|UIUserNotificationTypeAlert|UIUserNotification TypeSound) categories:nil];
[app registerUserNotificationSettings:settings];
}
Ben ayarları nesne kullanamadı?
DÜZENLEME: Sanırım çözdüm. Bu işe yarıyor.
-(void)showBackgroundNotification:(NSString *) message {
if (app.applicationState == UIApplicationStateBackground && [app currentUserNotificationSettings].types != UIUserNotificationTypeNone){
UILocalNotification *note = [[UILocalNotification alloc]init];
note.alertBody = message;
note.fireDate = [NSDate dateWithTimeIntervalSinceNow:0.0];
[app scheduleLocalNotification :note];
}
}
Cevabımı buradan kontrol edin: http://stackoverflow.com/a/33779144/1463604 – Nishant