适用于 iOS 的 Gmail 应用程序能够在应用程序未运行时接收推送通知(与大多数电子邮件应用程序一样)。
但是,当用户收件箱的未读计数变为零时,它也能够清除设备中的所有 Gmail 推送通知,即使应用未运行。
这是一个示例序列: 1. 在您的 Gmail 帐户中收到一封新电子邮件。 2. iOS 设备显示新消息通知。 3. 转到 Gmail 网站并打开邮件(将邮件标记为“已读”)。 4. iOS 设备上的通知被关闭。
注意:[[UIApplication sharedApplication] scheduledLocalNotifications]
仅提供本地通知,即那些在 iOS 应用程序本身中创建的通知。
至于 Apple 的 documentation for APNS描述,没办法remotely launch an app into the background ,并且无法取消远程通知。
那么,Gmail iOS 应用程序是如何做到这一点的呢?
最佳答案
通过使用 Parse 推送此有效负载,我也能够清除所有推送通知。我猜只要您提供 content-available
和 badge
,您应该也能做到这一点。我不必在 AppDelegate 中编写任何其他代码,但我必须在项目目标 capabilities
中打开推送通知。
curl -X POST \
-H "X-Parse-Application-Id: xxxxxxxxxxx" \
-H "X-Parse-REST-API-Key: xxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"data": {
"content-available": "1",
"badge":"0",
"sound":""
},
"where": {"something":"something_else"}
}' \
https://api.parse.com/1/push
关于objective-c - 远程关闭 iOS 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551108/