Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Notifications iOS 10本地通知未显示_Notifications_Swift3_Ios10_Ios10.2 - Fatal编程技术网

Notifications iOS 10本地通知未显示

Notifications iOS 10本地通知未显示,notifications,swift3,ios10,ios10.2,Notifications,Swift3,Ios10,Ios10.2,我一直致力于在iOS 10中为我的应用程序设置本地通知,但在模拟器中测试时,我发现这些通知将被成功调度,但在调度的时间到来时,它们将永远不会出现。以下是我一直使用的代码: let UNcenter = UNUserNotificationCenter.current() UNcenter.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in // Enab

我一直致力于在iOS 10中为我的应用程序设置本地通知,但在模拟器中测试时,我发现这些通知将被成功调度,但在调度的时间到来时,它们将永远不会出现。以下是我一直使用的代码:

let UNcenter = UNUserNotificationCenter.current()
        UNcenter.requestAuthorization(options: [.alert, .badge, .sound]) { (granted, error) in
            // Enable or disable features based on authorization

            if granted == true {

                self.testNotification()


            }

        }
然后运行此代码(假设日期/时间在将来):

从这段代码中,它将始终打印“计划通知”,但当应该触发通知时,它将永远不会触发。我找不到任何解决方法。

以下是一些步骤

  • 确保您拥有权限。如果没有,请使用
    UNUserNotificationCenter.current().requestAuthorization
    获取该信息。或者,如果您想多次显示请求弹出窗口,请按照下面的答案进行操作

  • 如果要显示通知前台,必须将
    unuservificationcenterdelegate
    分配到某个位置


  • 这可能会有所帮助。

    当应该触发通知时,您的应用程序是否在前台?否,我确保在触发通知之前退出应用程序。我曾经在应用程序处于后台、完全关闭和显示锁定屏幕时尝试过。无工作。您是否手动更改设备的时间以进行测试?@bhakti123在测试之前,我检查时间并将date.hour和date.minute更改为比时间提前几分钟。然后我进行测试,它得到了预定的通知,我关闭了应用程序。我根本不更改设备的时间,只更改安排通知的时间。请尝试将标识符“testId”更改为其他内容,具有相同标识符的通知将被拒绝。所以,也许它第一次就安排了一个通知,这就是为什么它拒绝其他通知的原因。
    func testNotification () {
        let date = NSDateComponents()
    
    
        date.hour = 16
        date.minute = 06
        date.second = 00
        date.day = 26
        date.month = 1
        date.year = 2017
    
        let trigger = UNCalendarNotificationTrigger(dateMatching: date as DateComponents, repeats: false)
    
        let content = UNMutableNotificationContent()
        content.title = "TestTitle"
        content.body = "TestBody"
        content.subtitle = "TestSubtitle"
    
        let request = UNNotificationRequest(identifier: "TestID", content: content, trigger: trigger)
    
        UNUserNotificationCenter.current().add(request) {(error) in
            if let error = error {
                print("error: \(error)")
            } else {
                print("Scheduled Notification")
            }
    
        }
    }