安排本地通知(静默)在后台执行自定义任务+;斯威夫特ios

安排本地通知(静默)在后台执行自定义任务+;斯威夫特ios,ios,swift,uilocalnotification,unusernotificationcenter,silent-notification,Ios,Swift,Uilocalnotification,Unusernotificationcenter,Silent Notification,在我们的应用程序中,用户将在开始工作时打卡。如果用户忘记打卡,我们将不得不在24小时后自动打卡。应用程序可能长时间不处于活动/后台状态。它可能会被终止。因此,我们的想法是发布一个本地通知,通过它在后台执行代码,让他退出。此通知必须是静默通知。但我们从研究中了解到,本地通知不能保持沉默。那么,我们还有其他方法可以做到这一点吗?或者我们可以安排一个无声的本地通知吗 class func generateLocalNotificationWith(timeInterval : TimeInterval

在我们的应用程序中,用户将在开始工作时打卡。如果用户忘记打卡,我们将不得不在24小时后自动打卡。应用程序可能长时间不处于活动/后台状态。它可能会被终止。因此,我们的想法是发布一个本地通知,通过它在后台执行代码,让他退出。此通知必须是静默通知。但我们从研究中了解到,本地通知不能保持沉默。那么,我们还有其他方法可以做到这一点吗?或者我们可以安排一个无声的本地通知吗

class func generateLocalNotificationWith(timeInterval : TimeInterval, title : String, message : String, mobileTimeClockId: Int)
{    
    UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
    let content = UNMutableNotificationContent()

    //adding title, subtitle, body and badge
    content.title = title
    content.body = message

    let userInfoDictionary = ["badge":"0","content-available": "1"]

    let dict = ["aps": userInfoDictionary, "MobileTimeClockId": mobileTimeClockId] as [String : Any]

    content.userInfo = dict

    //getting the notification trigger
    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: timeInterval, repeats: false)

    //getting the notification request
    let request = UNNotificationRequest(identifier: "SimplifiedIOSNotification", content: content, trigger: trigger)

    //adding the notification to notification center
    UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
}

如果您希望通知保持沉默并进行后台工作,则必须是推送通知。如果没有一些用户交互,本地通知无法唤醒你的应用程序


做你想做的事情的最好方法是使用核心位置区域监控,在用户实际离开工作场所时唤醒你的应用程序。区域监控可以在后台无声地唤醒你的应用程序,让你做一些工作。问题是它不能100%保证会被触发,用户需要接受后台位置权限。

您可以使用静默通知!请查看此链接,该链接描述了两种通知之间的差异,谢谢!是否有可能实现类似于闹钟的概念?我们是否可以发布类似于闹钟的警报,并强制用户退出?我看到手机的闹钟应用程序有两种工作方式。1) 如果手机被锁定,它会显示一个完整的页面通知,用户必须单击snooze或stop。2) 如果手机处于解锁状态,它会在顶部显示通知(类似于推送通知),并敦促用户做出反应。在第二种情况下,我可以通过刷卡清除通知。我们能做到这一点吗?@Mano-Nope,你不能让用户做出任何反应。他们可以忽略或禁用您的所有通知,而您对此无能为力。系统应用程序可以做的比普通开发人员多得多。@不知道我们可以执行多长时间的本地通知,这是由iOS中的区域监控触发的?如果您有任何想法,请让我知道。谢谢,当应用程序从geofence区域监控中醒来时,我正在尝试完成一项任务: