添加隐私,注销功能

This commit is contained in:
2026-02-27 14:49:46 +08:00
parent a711be4c4d
commit c3e037e070
13 changed files with 247 additions and 846 deletions

View File

@@ -457,18 +457,67 @@ NSString * const KBUserCharacterDeletedNotification = @"KBUserCharacterDeletedNo
NSString *message = jsonOrData[KBMessage] ?: KBLocalized(@"Success");
[KBHUD showSuccess:message];
// 退
[[KBUserSessionManager shared] logout];
// /
dispatch_async(dispatch_get_main_queue(), ^{
id<UIApplicationDelegate> appDelegate = UIApplication.sharedApplication.delegate;
if ([appDelegate respondsToSelector:@selector(toMainTabbarVC)]) {
AppDelegate *delegate = (AppDelegate *)appDelegate;
[delegate toMainTabbarVC];
}
});
[self kb_clearLoginInfoAndRouteHome];
}];
}
- (void)cancelAccountWithCompletion:(KBCancelAccountCompletion)completion {
[KBHUD show];
[[KBNetworkManager shared] POST:API_USER_CANCEL_ACCOUNT
jsonBody:nil
headers:nil
autoShowBusinessError:NO
completion:^(NSDictionary *jsonOrData, NSURLResponse * _Nullable response, NSError * _Nullable error) {
[KBHUD dismiss];
if (error) {
NSString *msg = KBBizMessageFromJSONObject(jsonOrData) ?: error.localizedDescription ?: KBLocalized(@"Network error");
[KBHUD showInfo:msg];
if (completion) {
completion(NO, error);
}
return;
}
NSString *message = jsonOrData[KBMessage] ?: KBLocalized(@"Success");
[KBHUD showSuccess:message];
[self kb_clearLoginInfoAndRouteHome];
if (completion) {
completion(YES, nil);
}
}];
}
#pragma mark - Private
///
- (void)kb_clearLoginInfoAndRouteHome {
[[KBUserSessionManager shared] logout];
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:AppGroup];
NSArray<NSString *> *sharedKeys = @[
AppGroup_MyKbJson,
AppGroup_UserAvatarURL,
AppGroup_SubscriptionPrefillPayload,
AppGroup_ChatUpdatedCompanionId,
@"AppGroup_SelectedPersona"
];
for (NSString *key in sharedKeys) {
[sharedDefaults removeObjectForKey:key];
}
[sharedDefaults synchronize];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@"KBAISelectedPersonaId"];
[defaults synchronize];
dispatch_async(dispatch_get_main_queue(), ^{
id<UIApplicationDelegate> appDelegate = UIApplication.sharedApplication.delegate;
if ([appDelegate respondsToSelector:@selector(toMainTabbarVC)]) {
AppDelegate *delegate = (AppDelegate *)appDelegate;
[delegate toMainTabbarVC];
}
});
}
@end