objective-c - 远程关闭 iOS 推送通知

标签 objective-c iphone push-notification apple-push-notifications

适用于 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-availablebadge,您应该也能做到这一点。我不必在 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/

相关文章:

ios - iOS 11 中的推送通知

ios - 更改应用程序中解析推送通知的当前 channel

iphone - 如何创建多个临时对象,然后使用 Core Data 只保存一个?

php - exif 在移动设备上使用 php 上传图片时剥离 GPS header ?

iphone - 从 CAShapeLayer 获得真正糟糕的性能

iphone - 如何屏蔽 UIView

javascript - 等待 ServiceWorker 完成注册后再订阅

objective-c - asyncsocket "connectToHost"总是成功并且永远不会返回失败

ios - NSString 字符串与 CString :encoding: - not copying the Cstring?

iphone - 使用按钮和文本字段/ View (iPhone) 打开消息应用程序(SMS 应用程序)