我们可以在IOS应用中获得静默本地通知吗?在后台进行一些数据处理而不与用户进行交互。
我想要做的是创建一个静默的本地通知,每天早上8点开始触发,用户收到它之后我想做一些数据处理并重新创建一个新用户,用户可以看到我处理的新数据在我看到第一个无声的本地通知之后。
我尽量避免使用推送通知。
答案 0 :(得分:4)
您可以在iOS上的后台接收静音通知,但您需要一台服务器来实际发送通知。
要执行此操作,请在目标的“功能”标签中启用Remote notifications
后台模式:
然后您使用
在application:didFinishLaunchingWithOptions:
注册推送通知
UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeNone categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
在用户允许您的应用发送推送通知之前,您将收到设备令牌:
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
如果出现问题,将调用失败处理程序:
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:
您将deviceToken
发送到您的服务器,并告诉它在设备的当地时间早上8点向该deviceToken
发送无声推送通知。
该设备将具有以下名为的代理委托方法:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
您将能够进行数据处理。
容易!
在你完成后别忘了给完成处理程序打电话!