无声的本地通知IOS

Ame*_*sed 11 xamarin.ios ios xamarin

我们可以在IOS应用程序中获得静默本地通知吗?在后台进行一些数据处理而不与用户进行交互.

我想要做的是创建一个静默的本地通知,每天早上8点开始触发,用户收到它之后我想做一些数据处理并重新创建一个新用户,用户可以看到我查看后处理的新数据第一个静默的本地通知.

我尽量避免使用推送通知.

Rhy*_*man 3

您可以在 iOS 上在后台接收静默通知,但您需要服务器来实际发送通知。

为此,您可以Remote notifications在目标的“功能”选项卡中启用后台模式:

背景模式设置的屏幕截图

application:didFinishLaunchingWithOptions:然后您注册推送通知

UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeNone categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];
Run Code Online (Sandbox Code Playgroud)

在用户允许您的应用程序发送推送通知之前,您将收到设备令牌:

 -(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken;
Run Code Online (Sandbox Code Playgroud)

如果出现问题,将调用故障处理程序:

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:
Run Code Online (Sandbox Code Playgroud)

您将 发送到您的服务器,并告诉它在设备当地时间上午 8 点deviceToken向该服务器发送静默推送通知。deviceToken

该设备将调用以下应用程序委托方法:

         - (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
      fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler;
Run Code Online (Sandbox Code Playgroud)

您将能够进行数据处理。

简单的!

完成后不要忘记调用完成处理程序!