首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每日通知Swift 3

每日通知Swift 3
EN

Stack Overflow用户
提问于 2017-01-22 12:28:58
回答 2查看 1K关注 0票数 0

我正在尝试弄清楚如何在每天的特定时间(比如上午8点)发送一次通知,而不需要用户输入,并且使用新的UNMutableNotificationContent而不是过时的UILocalNotification,并且不使用用户输入来触发它,而是使用一个时间。所有的解释都是旧的,不包括iOS10和swift 3。

到目前为止我所知道的。

ViewController.swift中的授权通知:

代码语言:javascript
复制
override func viewDidLoad() {

        UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge], completionHandler: {didAllow, error in
        })
    }

Notification.swift

代码语言:javascript
复制
let localNotification = UNMutableNotificationContent()
//    localNotification.fireDate = dateFire
    localNotification.title = "title"
    localNotification.body = "body"
    localNotification.badge = 1
    localNotification.sound = UNNotificationSound.default()

我知道我必须在其他事情中设置一个触发器和请求,但我不确定如何让它工作。

EN

回答 2

Stack Overflow用户

发布于 2017-01-22 15:25:49

你能看看这个教程吗-- Hacking with swift Notification center

您需要的是日期组件部分。

代码语言:javascript
复制
 func scheduleLocal() {
      let center = UNUserNotificationCenter.current()

    let localNotification = UNMutableNotificationContent()
    localNotification.title = "title"
    localNotification.body = "body"
    localNotification.badge = 1
    localNotification.sound = UNNotificationSound.default()

        var dateComponents = DateComponents()
        dateComponents.hour = 10
        dateComponents.minute = 30
        let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)

        let request = UNNotificationRequest(identifier: UUID().uuidString, content: localNotification, trigger: trigger)
        center.add(request)
    }

有关更多信息,请查看教程。它是用swift 3 iOS 10. Here's github repo编写的。

票数 0
EN

Stack Overflow用户

发布于 2017-01-22 15:29:02

第一步:

代码语言:javascript
复制
import UserNotifications

并判断用户是否允许通知

代码语言:javascript
复制
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) {
granted, error in
    if granted {
        // determine whether the user allows notification
    }
}

第二步:

创建通知

代码语言:javascript
复制
// 1. create notification's content
let content = UNMutableNotificationContent()
content.title = "Time Interval Notification"
content.body = "My first notification"

// 2. create trigger
//custom your time in here
var components = DateComponents.init()
components.hour = 8
let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: false)

// 3. send request identifier
let requestIdentifier = "com.xxx.usernotification.myFirstNotification"

// 4. create send request
let request = UNNotificationRequest(identifier: requestIdentifier, content: content, trigger: trigger)

// add request to send center
UNUserNotificationCenter.current().add(request) { error in
    if error == nil {
        print("Time Interval Notification scheduled: \(requestIdentifier)")
    }
}

你可以在Apple Documentation上找到更多信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41787351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档