Я хочу создать приложение для управления посещаемостью для iOS. В приложении будет кнопка «Пуск», а затем, если нажать, приложение получит уведомление о баннере.
Проблема в том, что я не могу получить уведомление о баннере, пока приложение находится на переднем плане. Я покажу свой код ниже. Если я хочу получить уведомление, я должен вернуться на главный экран или запустить другие приложения. В моем приложении кнопка Set Notification
позволяет получать уведомления, а кнопка Start
предназначена для установки уведомлений. Я получил бы уведомление немедленно, но в этот момент я должен go вернуться домой, поэтому я установил время timeInterval: 5
.
ContentView.swift
import SwiftUI
import Foundation
import UserNotifications
struct ContentView: View {
var body: some View {
VStack {
Button(action: { self.setNotification() }) {
Text("Set Notification")
}.padding()
//added here
Button(action: { self.btnSend() }) {
Text("Start")
}.padding()
}
}
func setNotification() -> Void {
UNUserNotificationCenter.current().requestAuthorization(
options: [.alert,.sound,.badge], completionHandler: {didAllow,Error in
print(didAllow) //
})
}
func btnSend() {
print("btnSend")
let content = UNMutableNotificationContent()
content.title = NSString.localizedUserNotificationString(forKey: "Hello!", arguments: nil)
content.body = NSString.localizedUserNotificationString(forKey: "Good morning hehe", arguments: nil)
content.sound = UNNotificationSound.default
// Deliver the notification in five seconds.
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: "FiveSecond",
content: content, trigger: trigger) // Schedule the notification.
let center = UNUserNotificationCenter.current()
center.add(request) { (error : Error?) in
if let theError = error {
// Handle any errors
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
У кого-нибудь есть хорошие решения?