当应用程序处于后台时,在Swift 2.0 Xcode 7中显示警报消息

时间:2016-02-20 13:21:20

标签: ios xcode swift background popup

我目前正在尝试在我的应用中弹出警告消息。当应用程序当前在屏幕上,从前台运行时,它会显示弹出窗口。但是,问题是当应用程序在后台运行时,弹出窗口不会显示在iOS上。仅在用户重新登录应用程序时显示。

这是弹出源代码:

func popupDeAlerta(){
    // Dismiss Message
    let alertController = UIAlertController(title: "Alert title", message:
        "alert message", preferredStyle: UIAlertControllerStyle.Alert) 

    AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate)) // vibration

    alertController.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default,handler: nil))
    self.presentViewController(alertController, animated: true, completion: nil)
}

2 个答案:

答案 0 :(得分:1)

是的,这是正确的行为,警报视图控制器仅在添加它的控制器上显示警报,如:

alertController.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default,handler: nil))
    self.presentViewController(alertController, animated: true, completion: nil)

如果您想要一段时间后自动提醒您的操作,您必须在应用中实施通知。

Notifications Link Here

答案 1 :(得分:0)

直到现在我找到的最佳方式。如果有人有其他建议或可以进一步讨论,非常欢迎。 在Appdelegate.swif上有一个名为" applicationDidEnterBackground"的预定义函数。就是这样做的:

func applicationDidEnterBackground(application: UIApplication) {

let notification = UILocalNotification() 
notification.alertAction = "Title Message" 
notification.alertBody = "Body Message" 
notification.fireDate = NSDate(timeIntervalSinceNow: 5) 
notification.soundName = UILocalNotificationDefaultSoundName 
notification.category = "INVITE_CATEGORY"; 
UIApplication.sharedApplication().scheduleLocalNotification(notification) }