我在worklight 6.2中遇到有关推送通知的问题。当我更新设备的os版本时,worklight控制台表中的deviceId会更新。你知道这是否是正确的行为?
答案 0 :(得分:0)
多个操作系统和硬件参数用于通过Worklight SDK生成deviceID。这意味着,当有OS升级时,deviceID可以更改。
如果没有操作系统更改 - 升级/重置,则在应用程序的生命周期内,deviceID不会更改。
此外,下次设备连接到服务器时(在deviceID更改后),服务器将使用新值进行更新。
如果您在分派通知时直接传递deviceID,则没有提及。如果是这样,您应该考虑使用UserSubscription对象来获取设备ID值。
例如:
userSubscription = WL.Server.getUserNotificationSubscription ("MyEventSource", userID);
var notification = WL.Server.createDefaultNotification("Hello");
var delayTimeout = WL.Server.notifyDevice( userSubscription, userSubscription.getDeviceSubscriptions()[0].token, notification);
userSubscription = WL.Server.getUserNotificationSubscription ("MyEventSource", userID);
var notification = WL.Server.createDefaultNotification("Hello");
var delayTimeout = WL.Server.notifyDeviceSubscription(userSubscription.getDeviceSubscriptions()[0], notification);
这可以减少因用户连接到服务器时更新订阅而导致错误或错误的deviceid错误的可能性。这样,设备ID在服务器上保持更新状态。