Инициализация
Убедитесь, что предыдущие шаги выполнены успешно
- SDK добавлено в ваше мобильное приложение (в проекте появилась зависимость
CarrotSDK)
Результат шага
- Приложение запустилось без ошибок
- В консоли появилась надпись “SDK init success”
Метод для инициализации
swift
import CarrotSDK
Carrot.shared.setup(
withApiKey: String,
useEuServer: Bool,
withAppGroup: String,
isServiceMode: Bool,
successHandler: {},
errorHandler: { Error in }
)objective-c
#import "CarrotSDK/CarrotSDK.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
....
Carrot *carrot = [Carrot shared];
[
carrot
setupWithApiKey: "API KEY"
successHandler: ^(){
NSLog(@"Carrot quest SDK connected");
}
errorHandler: ^(NSString *error){
NSLog(@"Carrot quest SDK error: %@", error);
}];
....
return YES;
}Обязательными здесь являются только 3: withApiKey, successHandler, errorHandler.
withApiKey- apiKey в String, который мы взяли на этапе получения ключейuseEuServer- опциональный параметр. Данный параметр отвечает за пересылку трафика через европейский сервер.withAppGroup- опциональный параметр. Отвечает за название апп группы приложения, куда установлен SDK, предотвращает дублирование пушей, а также осуществляет сбор статистики с пушей. Более подробно можно ознакомиться в следующем разделе: Дублирование пушейisServiceMode- опциональный параметр. Отвечает за внутренние характеристики.successHandler- обязательная функция, которая выполняется при успешной инициализации SDK. Помогает при устранении ошибокerrorHandler- функция, которая выполняется при неуспешной инициализации SDK. В качестве параметра возвращает текстовое описание ошибки
Для чего использовать метод с коллбэком
Все коллбэки в Carrot quest SDK для iOS обязательные, чтобы пользователи знали, что они есть. Методы с коллбэками предоставляют возможность понять, было ли инициализировано SDK, и произошло ли всё правильно. Если нет, то они помогут определить, какие произошли ошибки.
swift
import CarrotSDK
Carrot.shared.setup(
withApiKey: "00-0a0a0a0a0a0a0000aa",
successHandler: {
print("Все успешно инициализированно")
// Можно тут выполнить какие-то действия
// По завершению инициализации
},
errorHandler: { error in
print("Что-то пошло не так. Ошибка: \(error)")
}
)objective-c
#import "CarrotSDK/CarrotSDK.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
....
Carrot *carrot = [Carrot shared];
[
carrot
setupWithApiKey: "API KEY"
successHandler: ^(){
NSLog(@"Все успешно инициализированно");
// Можно тут выполнить какие-то действия
// По завершению инициализации
}
errorHandler: ^(NSString *error){
NSLog(@"Что-то пошло не так. Ошибка: %@", error);
}];
....
return YES;
}Авторизация пользователей
Если в вашем приложении присутствует авторизация пользователей, вы можете передать ID пользователя в Carrot quest. Существует два способа авторизации.
Передача ID напрямую
Передача ID напрямую через userAuthKey :
swift
import CarrotSDK
let userId: String = "USER ID"
let userAuthKey: String = "USER AUTH KEY"
Carrot.shared.auth(
withUserId: userId,
withUserAuthKey: userAuthKey,
successHandler: { carrotId
print("Carrot quest SDK user auth successed")
},
errorHandler: { error in
print("Carrot quest SDK user auth error: " + error)
}
)objective-c
#import "CarrotSDK/CarrotSDK.h"
Carrot *carrot = [Carrot shared];
[
carrot
authWithUserId: userId
withUserAuthKey: userAuthKey
successHandler: ^(NSString *carrotId){
NSLog(@"Carrot quest SDK user auth successed, CarrotId: %@", carrotId);
}
errorHandler: ^(NSString *error){
NSLog(@"Carrot quest SDK user auth error: %@", error);
}];Передача через hash
Также вы можете передать ID через hash, генерируемый у вас на бэке:
swift
import CarrotSDK
let userId: String = "USER ID"
let hash: String = "HASH FROM BACKEND"
Carrot.shared.hashedAuth(
withUserId: userId,
withHash: hash,
successHandler: { carrotId
print("Carrot quest SDK user auth successed")
},
errorHandler: { error in
print("Carrot quest SDK user auth error: " + error)
}
)objective-c
#import "CarrotSDK/CarrotSDK.h"
Carrot *carrot = [Carrot shared];
[
carrot
authWithUserId: userId
withHash: hash
successHandler: ^(NSString *carrotId){
NSLog(@"Carrot quest SDK user auth successed, CarrotId: %@", carrotId);
}
errorHandler: ^(NSString *error){
NSLog(@"Carrot quest SDK user auth error: %@", error);
}];Проверка инициализации
Для проверочного запуска нужно добавить принты в замыкания success и error:
swift
import CarrotSDK
Carrot.shared.setup(
withApiKey: "YOUR-API-KEY",
successHandler: {
print("SDK init success")
},
errorHandler: { error in
print("SDK init error: \(error)")
}
)objective-c
#import "CarrotSDK/CarrotSDK.h"
[[Carrot shared] setupWithApiKey:@"YOUR-API-KEY"
successHandler:^{
NSLog(@"SDK init success");
}
errorHandler:^(NSString *error) {
NSLog(@"SDK init error: %@", error);
}];При успешном запуске в консоли появится надпись “SDK init success”