プッシュ通知に pushwoosh phonegap プラグインを使用しています。登録が成功したら、登録で使用したデバイス ID を「hwid」パラメーターに保存して、同じデバイス ID で送信するプッシュ通知をターゲットにできるようにする必要があります。phonegap device.uuid は、pushwoosh プラグインがサーバーに送信する ID と同じであるように見えるため、これは Android でうまく機能します。ただし、ios では、device.uuid は pushwoosh に送信されるものとは異なる ID を返します。プラグインが pushwoosh に送信している hwid を Xcode コンソール ログから確認できますが、この ID をどこから取得しているか、phonegap 内で同じ ID にアクセスする方法がわかりません。
編集: getRemoveNotificationStatus 関数がこの情報を返すことを期待していましたが、実際には registerDevice コールバックよりも少ない値を返します。
更新: わかりました。プラグイン コードを掘り下げると、サーバーに送信するこの ID をどこで作成しているかがわかります。これは、特定のデバイスへのプッシュ通知をターゲットにするために最終的に必要な ID であるため、phonegap プラグインを介してこの 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;
}