StreamChatClient 2.6.9

StreamChatClient 2.6.9

Tommaso Barbugli 维护。



Stream Chat 的官方 iOS/macOS SDK

StreamChatClient StreamChatCore StreamChat
Cocoapods Carthage compatibleSwift Package Manager compatibleClient Documentation Cocoapods Carthage compatibleSwift Package Manager compatibleCore Documentation Cocoapods Carthage compatibleSwift Package Manager compatibleUI Documentation

stream-chat-swift 是 Stream Chat(https://getstream.io/chat/)的官方 iOS SDK,Stream Chat 是一个用于构建聊天和消息应用的服务。此 SDK 还通过 Mac Catalyst 支持 macOS。

快速链接

Swift/iOS 聊天教程

iOS Swift 聊天教程 开始是最佳选择。它教授您如何使用此 SDK,并展示了如何进行常见更改。

示例应用

此仓库包含一个带有设置说明的完整功能示例应用。它位于 Example 文件夹中。

文档

您通常会从使用UI组件开始,并根据需要使用Swift Chat API来实现自己的组件。

需求

  • iOS 11+/macOS 10.15+
  • Xcode 11.2+
  • Swift 5.2
  • CocoaPods 1.7+
  • Carthage 0.33.0+

Mac Catalyst

我们的框架与Mac Catalyst兼容,这意味着您可以在iOS和macOS上创建一个通用的聊天应用程序。更多信息请查看这里

⚠️Carthage目前还不支持Mac Catalyst。(参考

安装

Stream Chat SDK包括三个框架:StreamChatStreamChatCoreStreamChatClient

  • StreamChatClient - 用于连接并与StreamChat后端通信的底层库。
  • StreamChatCore — 基于StreamChatClient,它包括模型、展示者和通知管理器。此外,它还支持RxSwift进行响应式编程。
  • StreamChat — 基于Core,是一个完整的SDK库,包含所有UI组件。主题化和深度定制完全支持。

CocoaPods

要使用CocoaPods将StreamChat集成到您的Xcode项目中,请修改您的Podfile

pod 'StreamChat', '~> 2.0'

然后运行pod install

如果您只想使用StreamChatCoreStreamChatClient,请在您的Podfile中添加此项

pod 'StreamChatCore', '~> 2.0'
# or
pod 'StreamChatClient', '~> 2.0'

在您希望使用Stream Chat的任何文件中,不要忘记导入框架

import StreamChat

或者如果您正在处理底层客户端或Core

import StreamChatCore
// or
import StreamChatClient

Carthage

要将 Stream Chat 集成到您的 Xcode 项目中,使用 Carthage,请在您的 Cartfile 中指定它。

github "GetStream/stream-chat-swift" ~> 2.0

然后运行:carthage update --platform iOS --new-resolver。它会构建以下框架:StreamChatClient.frameworkStreamChatCore.frameworkStreamChat.framework,并将其放入 <Project Path>/Carthage/Build/iOS/ 中。然后您可以将它们添加到您的项目中,并将它们链接到您的应用程序目标。按照以下步骤操作:

  • 打开您的 Xcode 项目。

  • 在导航器中选择项目。

  • 选择您的应用程序目标。

  • 打开 General 面板。

  • 在 Finder 中打开 <Project Path>/Carthage/Build/iOS/,找到 StreamChatClient.framework,将其拖放到 Xcode 中 Frameworks, Libraries, and Embedded Content 区域。如果需要 UI 组件,以相同的方式处理 StreamChatCore.frameworkStreamChat.framework

  • 添加库后,在 "Embed" 部分选择 "Do Not Embed" 选项。(在添加库后,在库名称右侧)

  • 在 Xcode 中打开 Build Phases 面板。

  • 单击加号 + 并选择 New Run Script Phase

  • 设置内容为:/usr/local/bin/carthage copy-frameworks

  • 添加到 Input Files

    • $(SRCROOT)/Carthage/Build/iOS/StreamChatClient.framework

    • $(SRCROOT)/Carthage/Build/iOS/Starscream.framework

    • 如果您需要核心库

      • $(SRCROOT)/Carthage/Build/iOS/StreamChatCore.framework
      • $(SRCROOT)/Carthage/Build/iOS/RxSwift.framework
      • $(SRCROOT)/Carthage/Build/iOS/RxCocoa.framework
      • $(SRCROOT)/Carthage/Build/iOS/RxRelay.framework
    • 如果您需要 UI 组件

      • $(SRCROOT)/Carthage/Build/iOS/StreamChat.framework
      • $(SRCROOT)/Carthage/Build/iOS/Nuke.framework
      • $(SRCROOT)/Carthage/Build/iOS/SnapKit.framework
      • $(SRCROOT)/Carthage/Build/iOS/SwiftyGif.framework
      • $(SRCROOT)/Carthage/Build/iOS/RxGesture.framework
  • 添加到 Output Files

    • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/StreamChatClient.framework

    • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Starscream.framework

    • 如果您需要核心库

      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/StreamChatCore.framework
      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxSwift.framework
      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxCocoa.framework
      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxRelay.framework
    • 如果您需要 UI 组件

      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/StreamChat.framework ()
      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/Nuke.framework
      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SnapKit.framework
      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SwiftyGif.framework
      • $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/RxGesture.framework

现在您可以构建应用程序并使用 StreamChat

Swift 包管理器

您可以直接在 Xcode 11+ 中使用仓库 URL 添加依赖项,或在您的 Package.swift 文件中,将其添加到 dependencies

.package(url: "https://github.com/GetStream/stream-chat-swift.git", from: "2.3.0"),

支持的功能

  • 群聊
  • 频道列表
  • 点赞
  • 丰富链接预览(例如open graph)
  • 附件(图片、视频和文件)
  • 命令(例如/giphy
  • 编辑信息
  • 输入事件
  • 阅读事件
  • 线程
  • 通知
  • 在内部浏览器中打开链接
  • 图片库
  • 支持GIF
  • 浅色/深色主题
  • 样式定制
  • 用户界面定制