gpt4 book ai didi

ios - IOS(React Native)上的NotificationHub注册问题

转载 作者:行者123 更新时间:2023-11-29 05:26:59 24 4
gpt4 key购买 nike

我正在尝试从 React Native 注册 notificationHub。我创建了一个 NativeModule 并发送 connectionStringhubNametagsdeviceToken> - deviceToken已保存到AsyncStorage(我在用户登录之前获取deviceToken,并且如果没有用户标签(例如:scholarshipID),我无法注册通知中心,因此我保存deviceToken以供以后使用。因为我无法将用户标签从 RN 发送到 didRegisterForRemoteNotificationsWithDeviceToken )

用户登录后,我将获取用户奖学金 ID 和 deviceToken 并将其发送到 native 模块以进行通知中心注册。

 // deviceToken:(NSString *)tokenForLaterUsage

[hub
registerNativeWithDeviceToken:tokenForLaterUsage
tags:self->_tags
completion:^(NSError* error)
{
if (error != nil) {
NSLog(@"Error registering for notifications: %@", error);
}else{
NSLog(@"Success");
}
}];

我的tokenForLaterUsage是字符串,如果我尝试直接使用应用程序就会崩溃。因为 NotificationHub 注册函数正在等待 NSData,所以我将 NSString 转换为 NSData,如下所示:

    NSData* data = [tokenForLaterUsage dataUsingEncoding:NSUTF8StringEncoding];

此后,我将转到 Azure 门户并尝试发送通知,但系统显示未找到设备。

顺便说一句:当我尝试在这里注册NotificationHub时:didRegisterForRemoteNotificationsWithDeviceToken它工作得很好但我无法设置标签,所以这不适合我。从这里我只是获取 deviceToken 供以后使用。

--

注意:我正在考虑两种解决方法来解决此问题(但我不确定是否有效。):

  1. 解决方法:我不知道,但如果可以的话,我一开始不会注册,当用户登录时,我将在 IOS 上获取 deviceToken,然后尝试注册到NotificationHub 。
  2. 解决方法:我将使用restApi 直接将我的deviceToken 发送到后端,后端会将用户标签和deviceToken 配对。

抱歉,事情很复杂,但我需要解决这个问题。也很抱歉我的英语:)。

最佳答案

终于找到答案了。

首先,当生成 deviceToken 时,我将存储在 NSUserDefaults

NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
[userPreferences setObject:deviceToken forKey:@"deviceToken"];
[userPreferences synchronize];

当用户登录时,我从 NativeModules 中的 NSUserDefault 获取 deviceToken 并将其发送到NotificationHub。

NSData *token = [[NSUserDefaults standardUserDefaults] objectForKey:@"deviceToken"];

关于ios - IOS(React Native)上的NotificationHub注册问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58070124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com