如何从iOS中的Azure notificationhub获取registrationId

Pav*_*rra 5 azure apple-push-notifications ios azure-notificationhub

我需要Azure中的registrationId.是否可以从Azure获取registrationId?

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *) deviceToken {
    SBNotificationHub* hub = [[SBNotificationHub alloc] initWithConnectionString:HUBLISTENACCESS
                                                 notificationHubPath:HUBNAME];

    [hub registerNativeWithDeviceToken:deviceToken tags:nil completion:^(NSError* error) {
        if (error != nil) {
            NSLog(@"Error registering for notifications: %@", error);
        }
        else {
           [self MessageBox:@"Registration Status" message:@"Registered"];
        }
    }];
}
Run Code Online (Sandbox Code Playgroud)

通知工作正常,但我需要Azure中的registrationId发送回服务器.

Jam*_*lor 0

我仔细研究了https://github.com/Azure/azure-notificationhubs/tree/master/iOS/WindowsAzureMessaging/WindowsAzureMessaging上提供的NotificationHub SDK代码,发现注册方法都是SDK类SBNotificationHub的内部并且没有公开通过 ObjC 头文件。在此之前,您可以使用自己的头文件覆盖 SDK 头文件,或者接受无法从 SDK 访问 RegistrationId 的事实。有问题的方法是retrieveAllRegistrationsWithDeviceTokenor extractRegistrationIdFromLocationUri。后者还要求您先致电composeCreateRegistrationIdUri,然后registrationOperationWithRequestUri