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 5.0.5:通过操作系统的通知句柄控制 Worklight 推送通知订阅/取消订阅