Worklight:如何获取推送订阅的当前设备 ID

Posted

技术标签:

【中文标题】Worklight:如何获取推送订阅的当前设备 ID【英文标题】:Worklight: How to get current device ID for Push subscription 【发布时间】:2013-05-23 08:50:58 【问题描述】:

我想获取当前订阅的设备 ID 吗?我如何在客户端或服务器端获取它?

我知道订阅表,但我不想从中获取信息。

其次,如果一个用户已经订阅了两个设备,现在他/她正在订阅第三个设备,我想捕获第三个(当前)设备 ID。

稍后,我必须将第三个设备 ID 保存在另一个表中。

如果无法识别当前订阅的设备,那么如果我去订阅表,那么我怎么知道“这个设备ID是新注册的设备ID?”

希望清楚。

谢谢

【问题讨论】:

【参考方案1】:

    在适配器中注册事件源时,您可以指定 onUserSubscribe 回调。一旦用户订阅推送通知,将调用此回调。一旦调用此回调将接收用户订阅对象作为参数。该对象同时包含 userId 和 deviceId。

    WL.Server.getUserNotificationSubscription("event-source","userId") 将返回带有设备订阅数组的用户订阅对象。每个设备订阅对象都会有 deviceId。

    在客户端,deviceId 是设备身份验证领域的用户 ID。例如。如果您不使用配置,则可以使用 WL.Client.getUserInfo("wl_deviceNoProvisioningRealm", "userId");

    服务器端不知道您的“当前”设备。您可以使用 onUserSubscribe 回调将特定设备标记为最新。

    用户订阅对象可以有自定义属性,你可以使用它们来维护订阅状态。

【讨论】:

以上是关于Worklight:如何获取推送订阅的当前设备 ID的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight - 仅向订阅用户推送通知

IBM Worklight 5.0.5:通过操作系统的通知句柄控制 Worklight 推送通知订阅/取消订阅

worklight中的推送通知,如何检索userId?

多用户的 Worklight 推送通知

Worklight 6.2:成功发送标签推送通知,但在 android 设备上未收到

IBM Worklight:推送通知设备 ID