iOS如何设置闹钟和时间表work/notifications
iOS how to set Alarm and schedule work/notifications
嗨,我是 iOS 的新手,基本上我是 android 开发人员。但是现在我正在开发 iOS 应用程序,它只是 android 的 iOS 副本。让我告诉你我想要的应用程序:
Our app features alarm, that will remind our client that on a specific date you have this meeting. For example, if user sets alarm for 1-jan-2019 at time 9:00AM then on that day and time user must be notified of this meeting.
我读了很多书,发现在 iOS 中我们不能这样做,因为当应用程序在后台时它不能 运行 他自己的代码?所以我有两个基本问题:
我想要的:
首先如何安排闹钟
如果设置了闹钟并且应用程序处于 background/terminated 那么如何生成通知以及当用户点击通知时将他带到特定的视图?
- 如果应用程序在前台,那么如何将他带到想要的视图?另外,如果应用程序在特定视图上,如何在闹钟响起时更新视图本身?
我知道这 3 个主要部分需要太多编码。但我只是想要方向。给我 link 的代码块。我正在使用 xcode 9.2 和 swift 4.0。提前致谢...
您必须安排本地通知,现在可以在 UNUserNotificationCenter
中使用。
所以,
要在您的 AppDelegate
中或您想处理 UNUserNotificationCenter
委托方法的地方处理通知,请添加以下代码:
class AppDelegate:NSObject, UIApplicationDelegate, UNUserNotificationCenterDelegate{
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let center = UNUserNotificationCenter.current()
center.delegate = self // Don't forgot to set delegate
//To get permissions from user:
let options: UNAuthorizationOptions = [.alert, .sound, .badge];
center.requestAuthorization(options: options) {
(granted, error) in
if !granted {
print("Something went wrong")
}
}
return true
}
}
- 您可以使用本地通知来获取警报通知。
您可以在UNUserNotificationCenterDelegate
的委托方法中处理点击并导航到所需的页面。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)
要在应用程序处于前台时显示通知,请使用来自同一委托的此方法
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
嗨,我是 iOS 的新手,基本上我是 android 开发人员。但是现在我正在开发 iOS 应用程序,它只是 android 的 iOS 副本。让我告诉你我想要的应用程序:
Our app features alarm, that will remind our client that on a specific date you have this meeting. For example, if user sets alarm for 1-jan-2019 at time 9:00AM then on that day and time user must be notified of this meeting.
我读了很多书,发现在 iOS 中我们不能这样做,因为当应用程序在后台时它不能 运行 他自己的代码?所以我有两个基本问题:
我想要的:
首先如何安排闹钟
如果设置了闹钟并且应用程序处于 background/terminated 那么如何生成通知以及当用户点击通知时将他带到特定的视图?
- 如果应用程序在前台,那么如何将他带到想要的视图?另外,如果应用程序在特定视图上,如何在闹钟响起时更新视图本身?
我知道这 3 个主要部分需要太多编码。但我只是想要方向。给我 link 的代码块。我正在使用 xcode 9.2 和 swift 4.0。提前致谢...
您必须安排本地通知,现在可以在 UNUserNotificationCenter
中使用。
所以,
要在您的 AppDelegate
中或您想处理 UNUserNotificationCenter
委托方法的地方处理通知,请添加以下代码:
class AppDelegate:NSObject, UIApplicationDelegate, UNUserNotificationCenterDelegate{
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
let center = UNUserNotificationCenter.current()
center.delegate = self // Don't forgot to set delegate
//To get permissions from user:
let options: UNAuthorizationOptions = [.alert, .sound, .badge];
center.requestAuthorization(options: options) {
(granted, error) in
if !granted {
print("Something went wrong")
}
}
return true
}
}
- 您可以使用本地通知来获取警报通知。
您可以在
UNUserNotificationCenterDelegate
的委托方法中处理点击并导航到所需的页面。func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)
要在应用程序处于前台时显示通知,请使用来自同一委托的此方法
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)