- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
概念性问题,如果你不介意的话。
我们面临着让 GCM 通知始终如一地传送到我们的 Android 应用程序的挑战,并且已经对代码的几乎所有方面进行了检查以发现没有任何问题。然而,许多消息只是在状态 =“已接受”时结束它们的生命。
我可以确认正确的 gcm_tokens 被打包并通过 POST 发送到 https://gcm-http.googleapis.com/gcm/send大多数,但不是全部,他们都收到了。我可以确认这些消息的所有 gcm_tokens 都被 GCM post 接收,因为我们正在记录生成的 message_ids。但是 message_id 并不总是转化为呈现的通知。 FWIW:我们没有覆盖 delay_while_idle 的默认设置,time_to_live 设置为 1 天。
我真的很迷茫。我剩下的两个假设:要么 GCM 的可靠性低于 < 100%,要么我们遇到了一些边缘情况,客户端处于离线状态并且一旦再次激活就不会收到消息。鉴于这种情况,我们还应该检查什么?很抱歉这个模糊的问题……我们不知道我们不知道什么。
最佳答案
我们遇到了同样的问题。
我们的假设是,它们是关闭的设备,并且从那以后一直处于关闭状态。例如,当有人更换手机时,旧设备会关机或电池耗尽。我们仍然保留此设备上的 token ,并且我们的应用程序仍安装在该设备上。我猜 GCM 做同样的事情 - 它无法联系设备并且设备可以随时重新打开,因此 token 不会被视为无效。
观察到我们拥有越来越多的类似代币(在过去几个月),这一假设得到了加强。这与越来越多装有我们应用程序的旧设备被更换和关闭的事实是一致的。这也与 Google Play 仪表板中的 GCM 消息图表一致 - 存储的通知数量随着时间的推移而增加。
几个月后,我也打开了我的旧手机,收到了很多以前被接受的通知。这些通知由 GCM 存储了 4 周(我们不使用 time_to_live
标志)并且在我的手机离线时无法发送。
关于这个主题的文档很少,但最好的可能是 https://developers.google.com/cloud-messaging/concept-options#lifetime .
关于android - GCM 消息死于 "Accepted."的无声死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34147354/
有谁知道如何使用 JS window.open(...) 但是默默地使用它,即实际上没有打开它,所以打开检查它是否能够打开? 我必须运行脚本来进行弹出 block 检查,我快完成了。我不想让浏览器物理
在一个使用远程通知的 iOS 应用程序(来自 Parse.com)中,在花了一些时间研究这个主题之后,我得出的结论是我不应该在后台使用远程通知或者可能使用静默通知。 但是无声通知看起来相当复杂。 例如
我正在编写一个函数来标准化音频文件。我正在使用 JAudioTagger 库。 我在 Logic Pro X 中创建了一个简短的音频文件,它将完全静音(如果我理解正确的话,mp3 主体的所有字节都应该
如何让 Grunt 运行更安静? 我没有 --verbose选项。我仍然得到一个很长的日志。 我想要一个更短的日志,最好只记录失败的规范。 有什么建议吗? 我正在使用 grunt-karma和 Jas
有没有办法让 Backbone.Model 静默获取?选项 {silent: true} 不适用于模型提取。基本上我想使当前 View 已经监听的同步事件静音。 收听: self.listenTo(s
在我们的应用程序中,用户将在开始工作时打卡。如果用户忘记签退,我们将在签到时间 24 小时后自动为其签退。应用程序可能不会长时间处于事件/后台状态。它可能会被终止。所以我们的想法是发布一个本地通知,通
当我的“chartModel”发生变化时,我想更新“globalModel”。 chartModel.bind("change", updateGlobalModel); updateGlobalMo
我正在将主干版本从 0.9.2 更新到 1.0,但遇到了问题。 模型未正确更新。它有延迟。以前我下面的代码工作得很好: this.model({ attrib: true},{silent:true}
我是一名优秀的程序员,十分优秀!