xXxxX Asked:2020-05-11 21:33:43 +0000 UTC2020-05-11 21:33:43 +0000 UTC 2020-05-11 21:33:43 +0000 UTC 推送通知 772 我有一个问题,是否有应用程序发送像"Вы не заходили в приложение уже 2 дня“之类的通知。这些应用程序是否也通过他们自己的服务器发送通知? 无法使用计时器创建本地通知,例如,在应用程序关闭一小时后显示通知? 如果不是,那么事实证明,对用户不活动的监控也是由与服务器的最后一次连接决定的? ios 3 个回答 Voted Best Answer VAndrJ 2020-05-12T01:51:07Z2020-05-12T01:51:07Z 您可以在上次连接时发送推送通知,也可以启动本地通知。例如,如果用户最小化了应用程序,我们启动通知, func applicationDidEnterBackground(_ application: UIApplication) { let content = UNMutableNotificationContent() content.title = "Notification" content.body = "Sample" let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: 5.0, repeats: false) //покажет через 5 секунд let request = UNNotificationRequest(identifier:requestIdentifier, content: content, trigger: trigger) UNUserNotificationCenter.current().add(request){(error) in if (error != nil){ print(error?.localizedDescription ?? "") } } } 如果用户打开了应用程序——我们会杀死它。 func applicationDidBecomeActive(_ application: UIApplication) { UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: [requestIdentifier]) } 如果它没有运行一段时间,就会显示出来。 GitHub 上的示例 Александр 2020-06-05T17:28:10Z2020-06-05T17:28:10Z 可以随时从您自己的服务器发送远程推送通知。这里有两个选项 直接在 gateway.sandbox.push.apple.com:2195 向 APNS 发送消息 使用第三方服务,例如http://firebase.google.com您可以直接通过 Firebase 控制台发送(通知 -> 新消息),或 POST 请求到他们的服务器。 您的任务可以通过两种方式实现 通过远程通知——在后端的应用程序中,您不断保存最后一次活动时间 通过本地 - 以所需的时间间隔,重新创建唯一可以在您需要的时间段后工作的通知。 如果应用程序关闭,这两个通知都会触发。 Earl0Grey 2020-07-19T20:20:32Z2020-07-19T20:20:32Z 这通常是使用 UILocalNotification 完成的。每次您进入应用程序时,我们都会删除通知并设置一个新通知,持续 2 天。 - (void)applicationDidBecomeActive:(UIApplication *)application { [[UIApplication sharedApplication] cancelAllLocalNotifications]; application.applicationIconBadgeNumber = 0; UILocalNotification* localNotification = [[UILocalNotification alloc] init]; localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:2*24*60*60]; localNotification.alertBody = @"Вы не заходили в приложение уже 2 дня"; localNotification.timeZone = [NSTimeZone defaultTimeZone]; localNotification.applicationIconBadgeNumber = 1; localNotification.soundName = UILocalNotificationDefaultSoundName; [[UIApplication sharedApplication] scheduleLocalNotification:localNotification];}
您可以在上次连接时发送推送通知,也可以启动本地通知。例如,如果用户最小化了应用程序,我们启动通知,
如果用户打开了应用程序——我们会杀死它。
如果它没有运行一段时间,就会显示出来。
GitHub 上的示例
可以随时从您自己的服务器发送远程推送通知。这里有两个选项
您的任务可以通过两种方式实现
通过远程通知——在后端的应用程序中,您不断保存最后一次活动时间
通过本地 - 以所需的时间间隔,重新创建唯一可以在您需要的时间段后工作的通知。
如果应用程序关闭,这两个通知都会触发。
这通常是使用 UILocalNotification 完成的。每次您进入应用程序时,我们都会删除通知并设置一个新通知,持续 2 天。