Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何处理未打开的推送通知(iOS、Swift)_Ios_Swift_Push Notification - Fatal编程技术网

如何处理未打开的推送通知(iOS、Swift)

如何处理未打开的推送通知(iOS、Swift),ios,swift,push-notification,Ios,Swift,Push Notification,因此,我正在运行一个Swift应用程序,并使用Parse来处理推送通知。到目前为止,一切正常 我通过推送通知发送JSON对象,并根据接收到的数据更新本地数组。我通过应用程序处理数据:didReceiveMemotentification,并通过userInfo发送词典 当应用程序在前台打开时,这一点非常有效。当应用程序在后台并且用户在横幅中显示推送通知时,它也非常有效 JSON对象是根据应用程序:didReceiveEmotentification代码处理的 但是,当用户未打开通知时,appli

因此,我正在运行一个Swift应用程序,并使用
Parse
来处理推送通知。到目前为止,一切正常

我通过推送通知发送
JSON
对象,并根据接收到的数据更新本地数组。我通过
应用程序处理数据:didReceiveMemotentification
,并通过
userInfo
发送词典

当应用程序在前台打开时,这一点非常有效。当应用程序在后台并且用户在横幅中显示推送通知时,它也非常有效

JSON对象是根据
应用程序:didReceiveEmotentification
代码处理的

但是,当用户未打开通知时,
application:didReceiveMemotentification
不会运行,我的本地数组也不会更新


如何确保每次发送通知时,JSON对象都得到处理并相应地更新我的本地数组?

只有用户单击它并执行
didReceiveMemotentification
didFinishLaunchingWithOptions
方法get invoke,才能从通知中获取响应或JSON对象

在ios8中,您可以设置交互式通知,这对于直接从通知进行交互非常有用,而无需在前台打开应用程序

它是交互式通知的教程


这可能会对您有所帮助。

这通常是不正确的方法,您不应该依赖推送通知,用户可能会关闭它们,或者由于某些原因,它们可能无法提供。相反,您应该始终从服务器获取新数据。请阅读以下文章:

重要信息:发送通知是一种“最大努力”,而不是保证。它的目的不是向应用程序传递数据,只是通知用户有新数据可用

即使用户不点击通知或与通知交互,此方法也将调用

当远程通知到达时,系统调用
application:didReceiveEmotentification:fetchCompletionHandler:
方法。通知通常表示新信息的可用性。在应用程序委派方法中,您可以开始从服务器下载新数据,以便更新应用程序的数据结构。您还可以使用通知来更新用户界面。 -苹果公司

应用程序的状态必须为
UIApplicationStateActive
UIApplicationStateBackground


如果应用程序的状态为
UIApplicationStateInactive

,则无法执行任何操作。感谢您提供的信息!我现在将通过服务器更新本地数据。。。这次需要一大杯咖啡!嗨,我知道这有点晚了,但我也一直在使用Parse,Parse有非常强大的在线和离线数据库功能,如果你想做服务器端的工作,你可以使用这些功能来简化你的生活。
application:didReceiveRemoteNotification:fetchCompletionHandler: