Перейдіть із iOS SDK 1.x на 2.x

У цій статті є всі необхідні рекомендацій щодо міграції з HelpCrunch iOS SDK 1.x до iOS SDK 2.x.
Написано Микола
Оновлено 2 місяці тому

Ініціалізація

Старий підхід:

+ (void)initForOrganization:(NSString *)organizationDomain
             withAttributes:(NSDictionary *)attributes
          completionHandler:(HCCompletionHandler)completionHandler;

Новий підхід:

Замість словника з ключами ми перейшли до об’єктів. Перш за все, вам потрібно ініціалізувати об’єкт HCSConfiguration з вашою організацією, ApplicationId і applicationSecret.

+ (HCSConfiguration *)configurationForOrganization:(NSString *)organization
                                     applicationId:(NSString *)applicationId
                                 applicationSecret:(NSString *)applicationSecret;

Крім того, у HCSConfiguration ви можете налаштувати різні налаштування SDK, як-от залогування або налаштування обов’язкових/необов’язкових атрибутів користувача. Якщо ви хочете вказати поточного користувача, скористайтеся об’єктом HCSUser .

+ (void)initWithConfiguration:(HCSConfiguration *)configuration
                         user:(HCSUser * _Nullable)user
                   completion:(HCSCompletionHandler _Nullable)completion;

Старий підхід:

+ (void)customerNameRequired:(BOOL)required;

Новий підхід:

Ви можете додати будь-яку кількість атрибутів користувача, які відображатимуться на екрані привітання для нових користувачів. Для цього вам слід використовувати HCSUserAttribute, де у вас є 4 попередньо визначені атрибути та метод для додавання власних атрибутів.

+ (HCSUserAttribute *)nameAttributeAsRequired:(BOOL)required;
+ (HCSUserAttribute *)emailAttributeAsRequired:(BOOL)required;
+ (HCSUserAttribute *)companyAttributeAsRequired:(BOOL)required;
+ (HCSUserAttribute *)phoneAttributeAsRequired:(BOOL)required;
- (HCSUserAttribute *)initWithAttributeName:(NSString *)attributeName
                                placeholder:(NSString *)placeholder
                                   required:(BOOL)required;

Створіть масив атрибутів і передайте їх у властивість userAttributes в HCSConfiguration перед ініціалізацією SDK.

configuration.userAttributes =
  @[[HCSUserAttribute nameAttributeAsRequired:true],
    [HCSUserAttribute companyAttributeAsRequired:true],
    [HCSUserAttribute phoneAttributeAsRequired:false],
    [[HCSUserAttribute alloc] initWithAttributeName:@"Custom required attribute"
                                        placeholder:@"My custom"
                                           required:true],
    [[HCSUserAttribute alloc] initWithAttributeName:@"Optional attribute"
                                        placeholder:@"Please enter something"
                                           required:false]];

Переіменування

Старий:

+ (BOOL)isShowing;

Новий:

+ (BOOL)isVisible;

Старий:

+ (BOOL)closeChatIfVisible;

Новий:

+ (void)closeChatWithCompletion:(HCSCompletionHandler _Nullable)completionHandler;

Старий:

+ (void)logout:(HCCompletionHandler)completionHandler;

Новий:

+ (void)logoutWithCompletion:(HCSCompletionHandler _Nullable)completion;

Старий:

HC_SDKVersion

Новий:

HCSSDKVersion

Застарілі методи

+ (void)restoreFromBackground;
+ (void)useDefaultAlertForRemoteNotification:(BOOL)useDefaultAlert;
+ (void)customerNameRequired:(BOOL)required;
+ (void)enableNetworkActivityIndicator:(BOOL)enable;
+ (NSString *)appVersion;
+ (void)showFromController:(UIViewController *)controller delegate:(id)delegate;

NSNotification events

Наступні методи були замінені на події NSNotification.

Старий:

+ (void)checkUnreadMessages:(void (^)(NSUInteger unread))callbackBlock;

Новий:

HCSUnreadMessagesNotification

Не забудьте перевірити userInfo[@”data”] для NSNumber.

 Старий:

HelpCrunchPresenterDelegate

Увесь делегат не підтримується. Також HC_UserClosedChatNotification було перейменовано.

Новий:

HCSUserClosedChatNotification

Старий:

HC_OpenLinkNotification

Новий:

HCSURLNotification

Не забудьте перевірити userInfo[@”data”] для URL-адреси.

Чи була наша стаття корисною?