我如何知道在 iOS 中是不是发送了推送通知?
Posted
技术标签:
【中文标题】我如何知道在 iOS 中是不是发送了推送通知?【英文标题】:How can I know that push notification delivered or not in iOS?我如何知道在 iOS 中是否发送了推送通知? 【发布时间】:2016-09-21 09:57:25 【问题描述】:我正在使用 FCM(Firebase 云消息传递)接收推送通知。
一切都为我工作。
但是从我的服务器端,他们会不断地向我的应用发送通知,其中的时间为正文。
现在我只需在从服务器获取的时间达到当前时间时推送一次通知。
不应显示当前时间之前和当前时间之后的通知。
我不知道该怎么做。
谁能解释一下有没有办法得到这个。
【问题讨论】:
不清楚你在问什么,但推送通知是一种“尽力而为”的服务;没有任何迹象表明消息已送达 您必须发送静音通知。然后在需要时显示本地通知。看这里:***.com/questions/20741618/… @DmytroShvecov 如何区分静默通知和推送通知? 不会向用户显示静音通知。您必须以这种方式发送所有通知。并在程序中处理它们,然后在需要时显示本地通知。查看我之前发布的链接 @DmytroShvecov 感谢您的回复 【参考方案1】:您可以通过在服务器上实施 cron 作业来自定义通知到达时间表。
如果您使用任何API
向任何设备推送通知,只需在调用后获取成功消息或传递消息。
【讨论】:
【参考方案2】:我在 php 服务器上创建了一个端点,该端点采用 autoId 引用我的实时数据库中的 notifications/$autoId
。通知的发送者将通知数据写入数据库,如果成功则向http://myserver.com/notifications/$autoId/send
发送POST请求。
这似乎无需身份验证,但是除了创建它的用户和接收它的用户之外,没有人会知道正在发送的通知 ID。在服务器端,当使用 FCM 成功发送消息时,我们可以设置"sent": true
来防止它被多次发送。当用户收到通知时,我们设置"received": true
。
"notifications":
"$autoId":
"sent": false,
"received": "false",
"userInfo":
"notificationId": "$autoId",
"toId": "$toUid",
"fromId": "$fromUid"
【讨论】:
以上是关于我如何知道在 iOS 中是不是发送了推送通知?的主要内容,如果未能解决你的问题,请参考以下文章