如何在 didDetermineState 方法中打开应用程序
How to open app inside didDetermineState Method
今天,我可以通过使用 didDetermineState 就像下面的代码一样在移动设备进入该区域时启动本地通知,即使应用程序根本不是 运行。
if (state == CLRegionState.inside){
let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let content = UNMutableNotificationContent()
content.title = "Sonda"
content.subtitle = "Entrada"
content.body = "Hora: " + String(hour) + ":" + String(minutes)
content.badge = 1
content.sound = .default()
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 2, repeats: false)
let requestIdentifier = "reqIdentifier"
let request = UNNotificationRequest(identifier: requestIdentifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: {error in
//handle error
})....
是否可以在没有用户交互的情况下以相同的方法启动应用程序本身?
提前致谢,
菲利普
抱歉,不行,您不能以编程方式将 iOS 启动到前台。 iOS 的设计禁止这样做,因为它总是需要用户做出手势以允许应用程序进入前台。您最接近的是像您所做的那样发送本地通知。点击本地通知是获得所需用户手势的最简单、最人性化的方式。
今天,我可以通过使用 didDetermineState 就像下面的代码一样在移动设备进入该区域时启动本地通知,即使应用程序根本不是 运行。
if (state == CLRegionState.inside){
let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let content = UNMutableNotificationContent()
content.title = "Sonda"
content.subtitle = "Entrada"
content.body = "Hora: " + String(hour) + ":" + String(minutes)
content.badge = 1
content.sound = .default()
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 2, repeats: false)
let requestIdentifier = "reqIdentifier"
let request = UNNotificationRequest(identifier: requestIdentifier, content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: {error in
//handle error
})....
是否可以在没有用户交互的情况下以相同的方法启动应用程序本身?
提前致谢,
菲利普
抱歉,不行,您不能以编程方式将 iOS 启动到前台。 iOS 的设计禁止这样做,因为它总是需要用户做出手势以允许应用程序进入前台。您最接近的是像您所做的那样发送本地通知。点击本地通知是获得所需用户手势的最简单、最人性化的方式。