如何处理未打开的推送通知 (iOS, Swift)
How to Handle Push Notifications that are not Opened (iOS, Swift)
所以我运行正在使用 Swift 应用程序并使用 Parse
来处理我的推送通知。到目前为止,一切都按预期进行。
我正在通过推送通知发送 JSON
个对象,并根据收到的数据更新本地数组。我正在通过 application: didReceiveRemoteNotification
处理数据并通过 userInfo
发送字典。
当应用程序在前台打开时,这非常有效。当应用程序在后台并且用户在横幅中显示推送通知时打开它时,它也很有效。
JSON对象按照application: didReceiveRemoteNotification
代码处理。
但是,当用户没有打开通知时,application: didReceiveRemoteNotification
没有得到 运行 并且我的本地数组没有得到更新。
如何确保每次发送通知时 JSON 对象都得到处理并相应地更新我的本地数组?
在用户单击它并调用 didReceiveRemoteNotification
或 didFinishLaunchingWithOptions
方法之前,您无法从通知中获得响应或 JSON 对象。
从ios8开始,您可以设置交互式通知,这对于直接从通知进行交互非常有用,无需在前台打开应用程序。
HERE 交互式通知教程。
希望对您有所帮助。
这通常是不正确的方法,您不应依赖推送通知,用户可能会关闭它们或由于某些原因它们可能无法传送。相反,您应该始终从您的服务器获取新数据。从 Apple Push Notification Service Guide 读取:
Important: Delivery of notifications is a “best effort”, not guaranteed. It is not intended to deliver data to your app, only to notify the user that there is new data available
application:didReceiveRemoteNotification:fetchCompletionHandler:
即使用户不会点击通知或与通知交互,此方法也会被调用。
当远程通知到达时,系统调用
application:didReceiveRemoteNotification:fetchCompletionHandler:
方法。通知通常表示新信息的可用性。在您的应用程序委托方法中,您可能会开始从服务器下载新数据,以便您可以更新应用程序的数据结构。您还可以使用通知来更新您的用户界面。
-苹果公司
应用程序的状态必须是 UIApplicationStateActive
或 UIApplicationStateBackground
。
如果申请状态为UIApplicationStateInactive
,您将无法执行任何操作。
所以我运行正在使用 Swift 应用程序并使用 Parse
来处理我的推送通知。到目前为止,一切都按预期进行。
我正在通过推送通知发送 JSON
个对象,并根据收到的数据更新本地数组。我正在通过 application: didReceiveRemoteNotification
处理数据并通过 userInfo
发送字典。
当应用程序在前台打开时,这非常有效。当应用程序在后台并且用户在横幅中显示推送通知时打开它时,它也很有效。
JSON对象按照application: didReceiveRemoteNotification
代码处理。
但是,当用户没有打开通知时,application: didReceiveRemoteNotification
没有得到 运行 并且我的本地数组没有得到更新。
如何确保每次发送通知时 JSON 对象都得到处理并相应地更新我的本地数组?
在用户单击它并调用 didReceiveRemoteNotification
或 didFinishLaunchingWithOptions
方法之前,您无法从通知中获得响应或 JSON 对象。
从ios8开始,您可以设置交互式通知,这对于直接从通知进行交互非常有用,无需在前台打开应用程序。
HERE 交互式通知教程。
希望对您有所帮助。
这通常是不正确的方法,您不应依赖推送通知,用户可能会关闭它们或由于某些原因它们可能无法传送。相反,您应该始终从您的服务器获取新数据。从 Apple Push Notification Service Guide 读取:
Important: Delivery of notifications is a “best effort”, not guaranteed. It is not intended to deliver data to your app, only to notify the user that there is new data available
application:didReceiveRemoteNotification:fetchCompletionHandler:
即使用户不会点击通知或与通知交互,此方法也会被调用。
当远程通知到达时,系统调用
application:didReceiveRemoteNotification:fetchCompletionHandler:
方法。通知通常表示新信息的可用性。在您的应用程序委托方法中,您可能会开始从服务器下载新数据,以便您可以更新应用程序的数据结构。您还可以使用通知来更新您的用户界面。
-苹果公司
应用程序的状态必须是 UIApplicationStateActive
或 UIApplicationStateBackground
。
如果申请状态为UIApplicationStateInactive
,您将无法执行任何操作。