gpt4 book ai didi

ios - 检查用户是否允许本地通知。 iOS 8.Obj-C

转载 作者:可可西里 更新时间:2023-11-01 03:43:17 26 4
gpt4 key购买 nike

是否没有简单的方法来测试用户是否允许本地通知?在我拒绝发送本地通知后,我注意到控制台中出现警告。当相关事件发生时,它表示即使用户不允许,该应用程序仍试图发送通知。我想在尝试显示通知之前检查它是否被允许。查看我的情况下的评论,我该怎么做?

我的代码是:

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];
}
}

我会像这样提示用户获得许可:

UIUserNotificationSettings *settings;
if ([app respondsToSelector:@selector(registerUserNotificationSettings:)])
{
settings = [UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge|UIUserNotificationTypeAlert|UIUserNotification TypeSound) categories:nil];
[app registerUserNotificationSettings:settings];
}

我不能使用设置对象吗?

编辑:我想我已经解决了。这似乎有效。

-(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];
}
}

最佳答案

这是我在不太具体的情况下使用的方法:

+ (BOOL)notificationsEnabled {
UIUserNotificationSettings *settings = [[UIApplication sharedApplication] currentUserNotificationSettings];
return settings.types != UIUserNotificationTypeNone;
}

我通常在通知管理器中保留一组这些类型的方法。

关于ios - 检查用户是否允许本地通知。 iOS 8.Obj-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29590447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com