Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.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
Ios UILocalNotification什么都不做_Ios_Swift_Notifications_Uilocalnotification - Fatal编程技术网

Ios UILocalNotification什么都不做

Ios UILocalNotification什么都不做,ios,swift,notifications,uilocalnotification,Ios,Swift,Notifications,Uilocalnotification,这似乎是一个愚蠢的问题,但这是我第一次使用UILocalNotification,我无法让它用于快速测试。这根本没用 1。我在AppDelegate中创建了两个变量 let today = NSDate() let notification: UILocalNotification = UILocalNotification() 2。然后在ApplicationIdentinterBackground函数中,我有以下内容 notification.fireDate = today.da

这似乎是一个愚蠢的问题,但这是我第一次使用UILocalNotification,我无法让它用于快速测试。这根本没用

1。我在AppDelegate中创建了两个变量

let today = NSDate()
let notification: UILocalNotification = UILocalNotification()
2。然后在ApplicationIdentinterBackground函数中,我有以下内容

    notification.fireDate = today.dateByAddingTimeInterval(10)
    notification.alertTitle = "My App Test"
    notification.alertBody = "Testing Notification \n :)"
    UIApplication.sharedApplication().presentLocalNotificationNow(notification)
    UIApplication.sharedApplication().scheduleLocalNotification(notification)
3。还将其添加到ApplicationIDBecomeActive函数中

UIApplication.sharedApplication().cancelAllLocalNotifications()

再次阅读文档后,我意识到我错过了关键的第一步,那就是首先注册我的应用程序以获得用户通知。Apple文档是用OBJ-C编写的,但我能够理解它,以便将其转换为swift。这就是我所做的:

1。我将此添加到我的AppDelegate完成了启动选项功能,现在它可以正常工作了

var types: UIUserNotificationType = UIUserNotificationType()
types.insert(UIUserNotificationType.Alert)
types.insert(UIUserNotificationType.Badge)

let settings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: types, categories: nil)

UIApplication.sharedApplication().registerUserNotificationSettings(settings)

您正在计划在创建
today
变量后10秒发出通知。您是否真的在启动应用程序后10秒内将其置于后台?您是否添加了启用和响应通知所需的所有代码?你接受允许为你的应用程序发送通知的权限了吗?是的,我一启动应用程序,就立即将其放在后台,以确保我等待了10秒。我甚至看到我的日志声明在打电话。在回答你的第二个问题时,我确实觉得奇怪,我的应用程序从未请求允许通知。但是还没有想到这一点。如何强制它询问?您应该阅读详细信息。删除
UIApplication.sharedApplication()。presentLocalNotificationNow(通知)
@rmaddy是正确的。我只是再次阅读了文档,但错过了关键的第一步,即首先注册我的应用程序以获得用户通知。在我做了这件事之后,它现在开始工作了。我会补充我的答案。天哪,我没法让它发挥作用,没有人在任何地方提到这件事。。。非常感谢。我同意,所有我见过的例子都没有提到这第一步。但很高兴我能找到答案并帮助其他需要帮助的人。