Sendbird Chat SDK for iOS for enablement of a rich, engaging, scalable, and real-time chat service.
OTHER License
Bot releases are hidden (Show)
Published by sendbird-sdk-deployment over 1 year ago
Published by sendbird-sdk-deployment over 1 year ago
Published by sendbird-sdk-deployment over 1 year ago
Published by sendbird-sdk-deployment over 1 year ago
Published by sendbird-sdk-deployment over 1 year ago
You can now control the size of your local cache. Starting from 64mb, decide how much you want to store (Default: 256mb).
Once the size limit is reached, the SDK will automatically remove messages and channels with pre-specified logic (clearOrder
) so that you don't have to actively manage it.
LocalCacheConfig
let localCacheConfig = LocalCacheConfig()
localCacheConfig.maxSize = 256
localCacheConfig.clearOrder = .messageCollectionAccessedAt
Published by sendbird-sdk-deployment over 1 year ago
Published by sendbird-sdk-deployment over 1 year ago
Locally saved chats in your user's device can now be encrypted with FileProtectionType.completeUnlessOpen
protection level.
To enable this protection, please refer to below guide and API Reference.
When creating InitParams
, set LocalCacheConfig.isEncryptionEnabled
to true
. This option is turned off by default, so you don't have to set anything up if you don't intend to use it.
let localCacheConfig = LocalCacheConfig(isEncryptionEnabled: true)
let initParams = InitParams(
applicationId: appId,
isLocalCachingEnabled: true,
localCacheConfig: localCacheConfig
)
Published by sendbird-sdk-deployment over 1 year ago
Published by sendbird-sdk-deployment over 1 year ago
Polls is now supported in both Open Channels and Group Channels!
Moved following methods from GroupChannel
to BaseChannel
:
Added the following interfaces in OpenChannelDelegate:
Added the following interfaces in Polls:
Poll.serialize()
Poll.build(fromSerializedData:)
Published by sendbird-sdk-deployment over 1 year ago
When you call SendbirdChat.disconnect
, it disconnects the WebSocket and clears local cache. You can think of it as logging out.
In some cases, you need to only disconnect the WebSocket. You can now do it by calling SendbirdChat.disconnectWebSocket
.
It only disconnects the WebSocket and preserves the local cache.
SendbirdChat.disconnectWebSocket {
// onDisconnected
}
To connect again after disconnecting with disconnectWebSocket()
,
use SendbirdChat.connect().
SendbirdChat.connect(userId: userId) { user, error in
if let user = user {
// onConnected
} else {
// Handle error.
}
}
applicationId
and isLocalCachingEnabled
Published by sendbird-sdk-deployment over 1 year ago
nicknameContainsFilter
, nicknameExactMatchFilter
, nicknameExactMatchFilter
) to behave the same whether or not local caching is enabledPublished by sendbird-sdk-deployment over 1 year ago
params
argument in each interface:
BaseChannel.getMessageChangeLogs(token:params:completionHandler)
BaseChannel.getMessageChangeLogs(timestamp:params:completionHandler)
SendbirdChat.getMyGroupChannelChangeLogs(token:params:completionHandler)
SendbirdChat.getMyGroupChannelChangeLogs(timestamp:params:completionHandler)
registerDevicePushToken(_:unique:completionHandler:)
passes error to completionHandler when called before SendbirdChat is initializedPublished by sendbird-sdk-deployment over 1 year ago
Participant class in Open Channel
Participant is a new interface for User who joined Open Channel. It's optimized for scalability and contains much lighter information about the User than a Member in Group Channel.
Now clients can implement Open Channels easier in SDK with more built-in capabilities. You can compare how Member, Participant, and User are different here.
Participant
holds essential information about the participant like below. They contain their muted status (is_muted
) on top of basic User information.@objc(SBDParticipant)
public class Participant: User {
@objc
public internal(set) var isMuted: Bool
@objc
public func serialize() -> Data?
@objc
public class func build(fromSerializedData data: Data?) -> Self?
}
ParticipantListQuery.loadNextPage(completionHandler: @escaping UserListHandler)
now returns [Participant]
UsersHandler
returns User
list, but it can be casted into Participant
Published by sendbird-sdk-deployment over 1 year ago
You can now set longer timeout value (Previously 10s) for session token expiry. (Default: 60s, Maximum: 1800s). This means that Sendbird SDK will wait longer for your new session token, making it easier for you to reconnect to our service.
@objc class func setSessionTokenRefreshTimeout(_ timeout: Int)
BaseChannelHandler.onChannelChanged
and GroupChannelHandler.onPinnedMessageUpdated
are not being called when the pinned message is updatedPublished by sendbird-sdk-deployment almost 2 years ago
Published by sendbird-sdk-deployment almost 2 years ago
channelURLFilter
) were not applied properly in GroupChannelCollection
Pinned Message is released. You can now maintain a special set of messages (up to 10 per channel) that you want everyone in the channel to share. It can be anything from announcements, surveys, upcoming events, and any many more. Pin your messages and never miss them!
Stay tuned for updates as we are rolling out more exciting features and see below for exact specifications👇
UserMessageCreateParams.isPinnedMessage: Bool = false
FileMessageCreateParams.isPinnedMessage: Bool = false
GroupChannel.pinMessage(messageId:completionHandler:)
GroupChannel.unpinMessage(messageId:completionHandler:)
GroupChannel.lastPinnedMessage: BaseMessage? = nil
GroupChannel.pinnedMessageIds: [Int64]? = nil
use_local_cache
to the request headerPublished by sendbird-sdk-deployment almost 2 years ago
urlSession(_:task:didCompleteWithError:)
method implementation to the native web socket enginePublished by sendbird-sdk-deployment almost 2 years ago