如果我想在我的应用程序未在一周内打开后发送推送通知说要回来玩,我是否需要获得用户的许可才能向他们发送此本地推送通知?
在iOS 8中,您需要询问用户安排本地通知的权限。在iOS 8之前不需要它。
还有一件事,你必须知道推送通知和本地通知之间的区别。当您描述问题时,它会让人感到困惑。推送通知从APNs服务器发送。并从您的应用程序安排本地通知。
为此你需要使用Local notification。您需要做的是在用户打开应用程序一周后安排本地通知。每次安排通知都会取消所有早期通知。
要取消所有通知使用:
[[UIApplication sharedApplication] cancelAllLocalNotifications];
要安排通知使用:
UILocalNotification* n1 = [[UILocalNotification alloc] init];
n1.fireDate = [NSDate dateWithTimeIntervalSinceNow: 60];
n1.alertBody = @"one";
UILocalNotification* n2 = [[UILocalNotification alloc] init];
n2.fireDate = [NSDate dateWithTimeIntervalSinceNow: 90];
n2.alertBody = @"two";
[[UIApplication sharedApplication] scheduleLocalNotification: n1];
[[UIApplication sharedApplication] scheduleLocalNotification: n2];
是的,您只需要在iOS 8中注册本地通知。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];
}
}