我正在使用 pushwoosh phonegap 插件进行推送通知。成功注册后,我需要将注册使用的设备 ID 存储在“hwid”参数中,以便我可以针对使用相同设备 ID 发送的推送通知。这在 Android 上效果很好,因为 phonegap device.uuid 似乎与 pushwoosh 插件发送到其服务器的 ID 相同。但是,在 ios 上,device.uuid 返回的 ID 与发送到 pushwoosh 的 ID 不同。我可以从 Xcode 控制台日志中看到插件发送到 pushwoosh 的 hwid,但无法弄清楚他们从哪里获取此 ID 以及如何在 phonegap 中访问相同的 ID。
编辑:我希望 getRemoveNotificationStatus 函数会返回此信息,但它实际上返回的少于 registerDevice 回调。
更新:好的,通过挖掘他们的插件代码,我看到他们在哪里构建他们发送到他们的服务器的这个 ID。不确定为什么无法通过 phonegap 插件访问此 ID,因为这是我最终需要拥有的 ID,以便将推送通知定位到特定设备。
他们的代码:
(NSString *) uniqueDeviceIdentifier{
NSString *macaddress = [self macaddress];
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
NSString *stringToHash = [NSString stringWithFormat:@"%@%@",macaddress,bundleIdentifier];
NSString *uniqueIdentifier = [self stringFromMD5:stringToHash];
return uniqueIdentifier;
}
- (NSString *) uniqueGlobalDeviceIdentifier{
// >= iOS6 return identifierForVendor
UIDevice *device = [UIDevice currentDevice];
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.1")) {
if ([device respondsToSelector:@selector(identifierForVendor)] && [NSUUID class]) {
NSUUID *uuid = [device identifierForVendor];
return [uuid UUIDString];
}
}
// Fallback on macaddress
NSString *macaddress = [self macaddress];
NSString *uniqueIdentifier = [self stringFromMD5:macaddress];
return uniqueIdentifier;
}