2016-05-10 31 views
0

我是IOS编程的新手。我有问题处理IOS Swift 2中的通知。我从服务器发送通知,当应用程序不杀(Android onPause()相当于)我可以通知处理并打开应用程序正常工作,去通知url。当我杀了应用程序(相当于Android onDestroy())通知句柄不工作,应用程序打开和关闭(相当于Android onPause())自动和应用程序在后台工作,不会通知URL。如何处理IOS中通知的死亡(关闭)应用状态Swift 2

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) { 
    print(userInfo) 
    if let aps = userInfo["aps"] as? NSDictionary { 
     let link_url:String = (aps["link_url"] as? String)! 

     self.notifUrl = link_url 
     if(!self.appActive! && self.mainView != nil) { 
      self.mainView?.loadLink(link_url) 
     } 
    } 
} 

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) { 
    if let aps = userInfo["aps"] as? NSDictionary { 
     let link_url:String = (aps["link_url"] as? String)! 

     self.notifUrl = link_url 
     if(!self.appActive! && self.mainView != nil) { 
      self.mainView?.loadLink(link_url) 
     } 
    } 
} 

注:当我杀了应用SIGKILL错误。

什么问题?我该如何解决它? enter image description here

回答

0

那就是预期的行为。如果应用终止,推送不会传送给它(除非它的VoIP推送)。

如果它的前景推送它将被传递给用户,如果它的背景推送它不会被传送到任何东西。

如果前台推送并将其传递给用户,那么如果用户点击通知,那么您的应用将启动。

+0

所有时间(app杀死或没有)通知传递设备,但是当应用程序死亡我无法从通知操作中打开应用程序 –

+0

尚不清楚这是您的实际问题。在这种情况下,它必须是你的代码有问题。当通过通知从终止状态启动应用程序时,不会调用didReceiveRemoteNotification,而是调用didFinishLaunchingWithOptions:使用特定的launchOptions参数。检查文档并检查你的代码是否有错误。 – Gruntcakes

+0

感谢您的指导。 ' FUNC申请(申请:UIApplication的,didFinishLaunchingWithOptions launchOptions:[NSObject的:AnyObject]) - >布尔{ 让notificationTypes:UIUserNotificationType = [UIUserNotificationType.Alert,UIUserNotificationType.Badge,UIUserNotificationType.Sound] _ = UIUserNotificationSettings(forTypes:notificationTypes ,类别:无) 设设置= UIUserNotificationSettings(forTypes:[.Alert,.Badge,.Sound],类别:无) application.registerUserNotificationSettings(设置) application.registerForRemoteNotifications() 返回真 }' –

相关问题