我明白,我們可以檢查,如果用戶已啓用/禁用遠程通知與此代碼:如何檢查本地通知是否啓用/禁用?
[[UIApplication sharedApplication] enabledRemoteNotificationTypes]
但是有關檢查本地通知?
我沒有找到本地通知類型的相應屬性,並且我已驗證enabledRemoteNotificationTypes
僅用於遠程通知。
我們都知道,用戶可以編輯他們的通知設置,這會影響遠程和本地。
我明白,我們可以檢查,如果用戶已啓用/禁用遠程通知與此代碼:如何檢查本地通知是否啓用/禁用?
[[UIApplication sharedApplication] enabledRemoteNotificationTypes]
但是有關檢查本地通知?
我沒有找到本地通知類型的相應屬性,並且我已驗證enabledRemoteNotificationTypes
僅用於遠程通知。
我們都知道,用戶可以編輯他們的通知設置,這會影響遠程和本地。
我不確定,但我不認爲你可以訪問這些信息。你可以檢查用戶是否爲您的應用程序啓用的通知
的方法之一是向自己發送一個本地通知以1秒的延遲:
UILocalNotification *testNotification = [[UILocalNotification alloc] init];
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:1];
localNotification.alertBody = @"Test notification";
localNotification.timeZone = [NSTimeZone defaultTimeZone];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
,並檢查你發現它在:
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification) {
// If you get here, notifications are enabled
}
所有剩下的就是添加信息(例如,在localNotification.userInfo
中),因此如果您正在處理您的測試通知,或者它是「真實」通知,您可以在didReceiveLocalNotification:
中知道。
- (BOOL) isLocalNotificationsEnable {
if ([[UIApplication sharedApplication] respondsToSelector:@selector(currentUserNotificationSettings)]) {
UIUserNotificationSettings *grantedSettings = [[UIApplication sharedApplication] currentUserNotificationSettings];
return (grantedSettings.types == UIUserNotificationTypeNone) ? NO : YES;
}
return NO;
}
注意:如果您的目標<的iOS 8.0,如果塊只要求。
Possibe重複:http://stackoverflow.com/questions/8644134/determine-on-iphone-if-user-has-enabled-local-notifications –