【问题标题】:Schedule a local notification(silent) to perform a custom task in background + swift ios安排本地通知(静默)以在后台执行自定义任务 + swift ios
【发布时间】:2019-01-02 01:02:13
【问题描述】:

在我们的应用中,用户将在开始工作时打卡。如果用户忘记打卡,我们必须在打卡时间后 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)
}

【问题讨论】:

标签: ios swift uilocalnotification unusernotificationcenter silent-notification


【解决方案1】:

如果您希望通知静音并进行后台工作,则必须是推送通知。如果没有用户交互,本地通知无法唤醒您的应用。

实现您想要的最佳方式是使用核心位置区域监控在用户实际离开工作场所时唤醒您的应用。区域监控可以在后台静默唤醒你的应用,让你做一些工作。问题是它不能 100% 保证它会被触发,并且用户需要接受后台位置权限。

【讨论】:

  • 谢谢!是否有可能实现类似于闹钟概念的功能?我们可以发布类似于警报的警报并强制用户下班吗?我看到手机的闹钟应用程序有两种工作方式。 1)如果手机被锁定,它会显示一个完整的页面通知,用户必须点击贪睡或停止。 2)如果手机被解锁,它会在顶部显示一个通知(类似于推送通知)并敦促用户做出反应。在第二种情况下,我可以通过滑动清除通知。我们能做到吗?
  • @Mano 不,你不能做出任何用户必须响应的东西。他们可以忽略或禁用您的所有通知,而您对此无能为力。系统应用可以做的远比普通开发者多。
  • @nevanking 在 iOS 中的区域监控触发的本地通知操作中,我们可以执行多长时间的任务?如果您有任何想法,请告诉我。谢谢,当应用程序从地理围栏区域监控中唤醒时,我正在尝试完成一项任务:stackoverflow.com/questions/60184807/…
猜你喜欢
  • 2015-05-27
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-30
  • 1970-01-01
相关资源
最近更新 更多