Skip to content

Commit

Permalink
add custom method to open url 2.12.8
Browse files Browse the repository at this point in the history
  • Loading branch information
manzick committed Aug 26, 2024
1 parent 555c25d commit 06c1ce3
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 2 deletions.
Binary file modified CarrotSDK.xcframework.zip
Binary file not shown.
86 changes: 84 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
## Carrot quest для iOS

![Version](https://img.shields.io/static/v1?label=Version&message=2.12.7&color=brightgreen)
![Version](https://img.shields.io/static/v1?label=Version&message=2.12.8&color=brightgreen)

## Содержание

Expand All @@ -11,13 +11,15 @@
- [Свойства пользователей](#prop_swift)
- [События](#event_swift)
- [Чат с оператором](#chat_swift)
- [Открытие ссылок вручную](#custom_url_opener_swift)
- [Уведомления](#notif_swift)
- [Objective-C](#init_objc)
- [Инициализация](#init_objc)
- [Авторизация пользователей](#auth_objc)
- [Свойства пользователей](#prop_objc)
- [События](#event_objc)
- [Чат с оператором](#chat_objc)
- [Открытие ссылок вручную](#custom_url_opener_objc)
- [Уведомления](#notif_objc)
- [Дублирование уведомлений и статистика доставленных пушей](#notif_extension)
- [Локализация](#localization)
Expand Down Expand Up @@ -187,6 +189,43 @@ Carrot.shared.getUnreadMessagesCount({ count in
})
```

<a name="custom_url_opener_swift"></a>

## Открытие ссылок вручную

Для того, чтобы при клике на ссылку внутри SDK правильно работали диплинки (universal link) существует специальный метод ручного управления методом открытия ссылок. Его можно вызвать где угодно, но лучше всего где-то в вашем AppDeletage/SceneDelegate рядом с инициализацией SDK:

```swift
import CarrotSDK

CustomUrlOpener.shared.set(for: .chat, customLogic: { url in
// Любая кастомная логика по открытию ссылок
})
```

Как вы можете заметить, первый аргумент, который имеет label `for` на 4 доступных варианта:

- push - изменяет логику при клике на ссылку в пуше
- chat - изменяет логику при клике на ссылку в чате
- popup - изменяет логику при клике на ссылку в попапе
- all - изменяет логику при клике на ссылку во всех 3 местах

Таким образом, если вы хотите обработать клики на диплинк (universal link) во всех местах SDK, можно написать какой-то такой код:

```swift
import CarrotSDK

CustomUrlOpener.shared.set(for: .all) { url in
if url.host?.contains("ВАШ ДОМЕН") ?? false {
CustomUrlOpener.shared.openUniversalLink(url)
} else {
CustomUrlOpener.shared.openBrowserLink(url)
}
}
```

Если что, ошибки тут нет. Актуальные версии swift позволяют не указывать label последего замыкания в вызове функции.

<a name="notif_swift"></a>

## Уведомления
Expand Down Expand Up @@ -438,6 +477,49 @@ Carrot *carrot = [Carrot shared];
}];
```

<a name="custom_url_opener_objc"></a>

## Открытие ссылок вручную

Для того, чтобы при клике на ссылку внутри SDK правильно работали диплинки (universal link) существует специальный метод ручного управления методом открытия ссылок. Его можно вызвать где угодно, но лучше всего где-то в вашем AppDeletage/SceneDelegate рядом с инициализацией SDK:

```objective-c
CustomUrlOpener *opener = [CustomUrlOpener shared];

[
opener
for: 1
customLogic: ^(NSURL *url){
// Любая кастомная логика по открытию ссылок
}
];
```

Как вы можете заметить, первый аргумент, который имеет label `for` на 4 доступных варианта:

- push - изменяет логику при клике на ссылку в пуше
- chat - изменяет логику при клике на ссылку в чате
- popup - изменяет логику при клике на ссылку в попапе
- all - изменяет логику при клике на ссылку во всех 3 местах

Таким образом, если вы хотите обработать клики на диплинк (universal link) во всех местах SDK, можно написать какой-то такой код:

```objective-c
CustomUrlOpener *opener = [CustomUrlOpener shared];

[
opener
for: 3
customLogic: ^(NSURL *url){
if ([[url host] containsString:@"ВАШ ДОМЕН"]) {
[[CustomUrlOpener shared] openUniversalLink:url];
} else {
[[CustomUrlOpener shared] openBrowserLink:url];
}
}
];
```

<a name="notif_objc"></a>

## Уведомления
Expand Down Expand Up @@ -739,4 +821,4 @@ extension AppDelegate: UNUserNotificationCenterDelegate {

0 - логи выключены

1 - логи включены
1 - логи включены

0 comments on commit 06c1ce3

Please sign in to comment.