Skip to content

Обновление до версии 3.0.0

Обратите внимание, что при переходе на версию 3.0.0 были внесены некоторые важные изменения в способ взаимодействия с библиотекой.

Авторизация

Если у вас есть авторизация пользователей необходимо вызывать ее при старте приложения. Наилучшим местом для этого является successHandler у метода setup:

swift
import CarrotSDK

Carrot.shared.setup(
    withApiKey: apiKey,
    successHandler: {
        if let userId = userId {
            Carrot.shared.auth(
                withUserId: userId, 
                withUserAuthKey: userAuthKey, // or withHash: hash,
                    successHandler: { carrotId in
                        print("Carrot quest SDK user auth succeeded, CarrotId = \(carrotId)")
                    },
                    errorHandler: { error in
                        print("Carrot quest SDK user auth error: " + error)
                    })
        }
    },
    errorHandler: { error in
        print("Failed to connect Carrot quest SDK, reason: \(error)")
    }
)
objective-c
#import <CarrotSDK/CarrotSDK.h>

Carrot *carrot = [Carrot shared];
[carrot setupWithApiKey:apiKey
        successHandler:^() {
          if (userId != nil) {
            [carrot authWithUserId:userId
                  userAuthKey:userAuthKey // or hash:hash
                 successHandler:^(NSString * _Nonnull carrotId) {
                   NSLog(@"Carrot quest SDK user auth succeeded, CarrotId = %@", carrotId);
                 }
                   errorHandler:^(NSString * _Nonnull error) {
                     NSLog(@"Carrot quest SDK user auth error: %@", error);
                   }];
          }
        }
          errorHandler:^(NSString * _Nonnull error) {
            NSLog(@"Failed to connect Carrot quest SDK, reason: %@", error);
          }];

Таким образом это предотвратит лишнее возникновение анонимных пользователей.

Установка темы

Так же, для унификации кода с AndroidSDK аргумент withTheme был вынесен из метода setup в отдельный метод:

swift
import CarrotSDK

Carrot.shared.setTheme(.dark)
// Допустимые варианты:
// "light" - светлая тема чата в SDK
// "dark" - темная тема чата в SDK
// "fromMobile" - тема, подстраиваемая под тему устройства
// "fromWeb" - тема, такая же, как включенная в настройках админ панели
objective-c
Carrot *carrot = [Carrot shared];
[carrot setTheme:ThemeDark];
// Допустимые варианты:
// "ThemeLight" - светлая тема чата в SDK
// "ThemeDark" - темная тема чата в SDK
// "ThemeFromMobile" - тема, подстраиваемая под тему устройства
// "ThemeFromWeb" - тема, такая же, как включенная в настройках админ панели

Важно! Пока что тема меняется только при полном перезапуске приложения