我们能在 IOS 应用程序中拥有一个无声的本地通知吗?它可以在不需要用户交互的情况下进行后台数据处理。
我想做的是创建一个无声的本地通知,每天早上 8 点触发,并在用户接收通知后进行一些数据处理,然后重新创建一个新的通知,用户可以看到我在第一次无声本地通知后处理的新数据。
我尽可能地避免使用推送通知。
我们能在 IOS 应用程序中拥有一个无声的本地通知吗?它可以在不需要用户交互的情况下进行后台数据处理。
我想做的是创建一个无声的本地通知,每天早上 8 点触发,并在用户接收通知后进行一些数据处理,然后重新创建一个新的通知,用户可以看到我在第一次无声本地通知后处理的新数据。
我尽可能地避免使用推送通知。
在iOS后台,您可以接收静默通知,但是实际发送通知需要一个服务器。
为此,您需要在目标的“功能”选项卡中启用“远程通知”后台模式:
然后,在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:00AM发送静默推送通知到该deviceToken
。 - (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
并且您将能够进行数据处理。
简单易懂!
完成时不要忘记调用完成处理程序!