【发布时间】:2015-02-03 15:39:12
【问题描述】:
我正在阅读this previous thread,因为我在将设备令牌转换为可以在 POST 中发送的东西时遇到问题。该问题已解决,我的令牌已正确发送到服务器,我们将其存储在用户的帐户记录中。
这就是我需要做的,对吧?如果我们使用该令牌进行通知,它将发送给该用户,并且只发送给该用户?还是我在这里遗漏了一些非常重要的东西?
【问题讨论】:
标签: ios apple-push-notifications
我正在阅读this previous thread,因为我在将设备令牌转换为可以在 POST 中发送的东西时遇到问题。该问题已解决,我的令牌已正确发送到服务器,我们将其存储在用户的帐户记录中。
这就是我需要做的,对吧?如果我们使用该令牌进行通知,它将发送给该用户,并且只发送给该用户?还是我在这里遗漏了一些非常重要的东西?
【问题讨论】:
标签: ios apple-push-notifications
当您说“用户”时,您的意思是您的应用可以让不同的用户登录和退出吗?
要处理这个问题,您可以设置一个表来将user_id 映射到push_token 和device_id。您还应该在此地图中添加 enabled 标志 - 这意味着用户当前已在该设备上登录。
从概念上讲,虽然一个设备只有一个推送令牌,但它可能有很多用户,而一个用户可能有很多设备。
当用户在设备上登录您的应用时,您发送user_id、push_token 和device_id 并在您的表格中设置enabled=TRUE。如果此用户/设备组合从未存在,请添加到您的表格中。
当用户在设备上退出您的应用时,您发送user_id 和device_id 并在您的表格中设置enabled=FALSE。
当发生会触发向用户推送user_id 的事件时,您可以查找与user_id 和enabled=TRUE 关联的push_tokens。然后你可以简单地推送到这些令牌。
【讨论】:
device_id。 device_id 本质上是 UDID - 设备的唯一标识符。根据 Apple 文档,push_token 也不能保证保持不变。通常,在每次登录时更新它是好的。此外,如果用户注销服务而另一个用户登录同一设备,那么两者将具有相同的push_token。您不希望 user1 收到有关 user2 活动的推送。同样,您确实希望 user1 在他们登录的任何设备上收到推送通知。
push_token和payload json
@dmorrow 是对的。此外,您需要制作具有相同应用程序 id 的 .pem 证书才能使服务器推送通知起作用,请查看此ANSWER
【讨论】: