我的应用程序在整个应用程序的随机点向用户显示用户通知(在屏幕顶部弹出)(它们从服务器远程触发,即当另一个用户向他们发送消息时),使用UserNotifications框架。
当处于非导引访问模式时,通知工作正常,并且当用户在应用程序中时,通知会正常启动。
这是来自app-delegate以启用显示应用内的通知:
extension AppDelegate : UNUserNotificationCenterDelegate {
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
completionHandler(.alert)
}
这是通知被触发的方式(当从Firebase触发事件时):
func sendNotification(notTitle: String, notSubtitle: String, notBody: String) {
let notif = UNMutableNotificationContent()
notif.title = notTitle
notif.subtitle = notSubtitle
notif.body = notBody
let notifTrigger = UNTimeIntervalNotificationTrigger(timeInterval: 0.1, repeats: false)
let request = UNNotificationRequest(identifier: "myNotification", content: notif, trigger: notifTrigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
}
所以上述所有工作都很好。
但我的问题是,一旦应用程序进入引导访问模式(三键式主页按钮 - 密码将设备锁定到我的特定应用程序),则通知将不会显示。引导访问以某种方式阻止它们。
我的应用程序必须处于引导访问状态,因为它是从设施中的实际工作人员提供给客户的。
有没有办法阻止引导访问模式阻止用户通知?或者我必须在app-delegate中包含一些功能?
我在SO或网上找不到关于此问题的任何内容。任何帮助将不胜感激
答案 0 :(得分:1)
用户通知通常用于在用户不在应用程序中时通知用户,当用户点击它时,应用程序将打开。出于这个原因,Guided Access旨在阻止用户通知,因为它们通常与其他应用程序绑定。我不知道如何解决这个问题。
最好的办法可能是在应用程序本身中创建某种视觉指示,以获取值得通知的内容。您仍然可以使用用户通知,但是当用户已经在应用程序内部时,您可以执行一些自定义视觉指示,表明收到了新消息等。