Infoset 1.6.1

Infoset 1.6.1

Samed DüzçayOnur Coskun维护。



Infoset 1.6.1

  • Samed Düzçay和Onur Coşkun

CocoaPods Languages Version Carthage compatible GitHub

Infoset

Infoset iOS SDK

Infoset iOS SDK允许您将Infoset Chat集成到您的iOS应用中。

要求

  • iOS 10.0+
  • Xcode 8.0+

安装

CocoaPods

如果您使用CocoaPods来管理依赖项,只需将Infoset添加到您的Podfile中。

    target :YourTargetName do
      pod 'Infoset'
    end

Carthage

如果您使用Carthage来管理依赖项,只需将'infoset/infoset-ios'添加到您的Cartfile中。

  1. github "infoset/infoset-ios"添加到您的Cartfile中。
  2. 运行carthage update
  3. 前往您Xcode项目的"通用"设置。从Carthage/Build/iOS拖动Infoset.xcframework到"已嵌入的二进制文件"部分。确保选择了“如果需要则复制项目”,并点击完成。

手动安装

您可以在不使用依赖管理器的情况下手动将Infoset iOS SDK集成到项目中。

  1. 下载Infoset iOS SDK并将其解压。
  2. Infoset.xcframework拖入您的项目中。

确保选择了“如果需要则复制项目”,并点击完成。

  1. 在您的应用程序的目标设置中,将Infoset.xcframework设置为“嵌入并签名”。这可以在“通用”选项卡的“框架、库和已嵌入的内容”部分中找到。

  1. 在您的应用程序目标中创建一个新的"运行脚本阶段",并将以下代码片段粘贴到脚本文本字段中
    bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Infoset.xcframework/strip-frameworks.sh"

这一步是为了解决在存档通用二进制文件时的App Store提交错误

更新Info.plist

如果您启用了Infoset聊天小部件中的文件共享,为了防止iOS 10或更高版本上崩溃,请确保在此处的Info.plist中存在以下条目

  • NSPhotoLibraryUsageDescription (隐私 - 照片库使用描述)
  • NSCameraUsageDescription (隐私 - 摄像头使用描述)
  • NSMicrophoneUsageDescription (隐私 - 麦克风使用描述)

您可以通过示例项目检查Info.plist文件。

使用

初始化

import Infoset

InfosetChat.apiKey = "YOUR_WIDGET_API_KEY"
InfosetChat.iosKey = "YOUR_WIDGET_IOS_KEY"

展示聊天小部件

InfosetChat.presentChat()

用户点击关闭按钮时,聊天小部件将被关闭。您也可以通过编程方式关闭它。

InfosetChat.dismissChat()

使用UIWindowSceneDelegate

如果您的应用程序使用UIWindowScene API,那么在窗口场景代理类中,您需要执行额外的配置步骤。

class SceneDelegate: UIResponder, UIWindowSceneDelegate {
    var window: UIWindow?

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        InfosetChat.windowScene = (scene as? UIWindowScene)
    }
}

设置用户变量

如果知道用户的名字和电子邮件地址,您可以提供这些详细信息,这样您就可以立即知道在Infoset仪表板上与谁交谈。

InfosetChat.visitor = InfosetChatVisitor(id: 123, email: "[email protected]", firstName: "John", lastName: "Doe")

所有字段都是可选的。请参阅InfosetChatVisitor类以获取所有用户字段。

将聊天分配给标签

通过提供tags,您可以路由聊天到特定的标签。

InfosetChat.tags = "High Priority"

您可以提供多个以逗号分隔的标签。

InfosetChat.tags = "Support,Recurring Customer"

通知用户关于代理的响应

您可以通过订阅传入的消息并在聊天窗口最小化的情况下通知用户。要处理传入的消息,您的类必须实现InfosetChatDelegate协议并将自身设为InfosetChat.delegate

class YOUR_CLASS_NAME : InfosetChatDelegate { // Your class need to implement InfosetChatDelegate protocol
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    InfosetChat.apiKey = "YOUR_WIDGET_API_KEY"
    InfosetChat.iosKey = "YOUR_WIDGET_IOS_KEY"
    InfosetChat.delegate = self // Set self as delegate

    return true
  }

  func received(message: InfosetChatMessage) {
    print("Received message: \(message.text)")
    // Handle message here
  }
}

处理URL

默认情况下,聊天消息中的所有链接都在Safari中打开。要更改此行为,您可以使用InfosetChatDelegate来自行处理URL。

func handle(URL: URL) {
  print("URL is \(URL.absoluteString)")
  // Handle URL here
}

订阅房间事件

您可以通过指定房间ID参数来订阅房间事件,以便在房间状态更改时立即得到通知。要处理房间状态更改,您的类必须实现InfosetChatDelegate协议,并将自身设置为InfosetChat.delegate

    func roomOpened(roomId: Int64) {
        // Do sth
    }

    func roomClosed(roomId: Int64) {
        // Do sth
    }

    func roomReopened(roomId: Int64) {
        // Do sth
    }

本地部署支持

如果您正在使用Infoset的本地部署版本,您应将InfosetChat.webviewUrl设置为您的本地部署URL。

InfosetChat.webviewUrl = "https://your-on-premise-dashboard-url/chat/open_chat.html"

有关更多信息,请联系我们。

示例应用

Swift和Objective-C的示例应用可以在Examples文件夹中找到。

React Native支持

我们为React Native / Expo提供了React Native SDK⚛️

获得帮助

如果您有任何问题或想提供反馈,请发送电子邮件与我们聊天!