Browse Source

绑定极光优化

Steven 8 months ago
parent
commit
5199078e92

+ 23 - 18
KulexiuForTeacher/KulexiuForTeacher/Module/Login/Model/UserInfoManager.m

@@ -153,15 +153,7 @@
             }
            
             if (needConnect) {
-                NSString *access_token = UserDefault(TokenKey);
-                // 设置推送别名
-                [JPUSHService setAlias:UserDefault(UIDKey) completion:nil seq:0];
-                // 上传registrationID
-                [JPUSHService registrationIDCompletionHandler:^(int resCode, NSString *registrationID) {
-                    if (![NSString isEmptyString:registrationID] && ![NSString isEmptyString:access_token]) {
-                        [self saveRegisterId:registrationID accessToken:access_token];
-                    }
-                }];
+                [self bandJPush];
                 [Bugly setUserIdentifier:UserDefault(UIDKey)];
                 [self connectIM];
             }
@@ -212,15 +204,8 @@
                 UserDefaultSetObjectForKey(@(self.userInfo.tenantId), TENANT_ID);
             }
             [[NSUserDefaults standardUserDefaults] synchronize];
-            NSString *access_token = UserDefault(TokenKey);
-            // 设置推送别名
-            [JPUSHService setAlias:UserDefault(UIDKey) completion:nil seq:0];
-            // 上传registrationID
-            [JPUSHService registrationIDCompletionHandler:^(int resCode, NSString *registrationID) {
-                if (![NSString isEmptyString:registrationID] && ![NSString isEmptyString:access_token]) {
-                    [self saveRegisterId:registrationID accessToken:access_token];
-                }
-            }];
+            
+            [self bandJPush];
             [Bugly setUserIdentifier:UserDefault(UIDKey)];
             [self connectIM];
             [self startUMCountAndLoginCount];
@@ -234,6 +219,26 @@
 }
 
 
+- (void)bandJPush {
+    NSString *access_token = UserDefault(TokenKey);
+    // 因为账号切换,这里绑定别名时,需要增加延迟避免绑定错误
+    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
+        NSString *userID = UserDefault(UIDKey);
+        NSString *token = UserDefault(TokenKey);
+        // 确保在登录状态下才设置
+        if (![NSString isEmptyString:userID] && ![NSString isEmptyString:token]) {
+            NSLog(@"------- userId --- %@", userID);
+            [JPUSHService setAlias:UserDefault(UIDKey) completion:nil seq:0];
+        }
+    });
+    // 上传registrationID
+    [JPUSHService registrationIDCompletionHandler:^(int resCode, NSString *registrationID) {
+        if (![NSString isEmptyString:registrationID] && ![NSString isEmptyString:access_token]) {
+            [self saveRegisterId:registrationID accessToken:access_token];
+        }
+    }];
+}
+
 - (void)startUMCountAndLoginCount {
     [self startCountUMEvent];
     [self sendUMEvent:@"klx_login"];