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
中。
- 将
github "infoset/infoset-ios"
添加到您的Cartfile中。 - 运行
carthage update
。 - 前往您Xcode项目的"通用"设置。从
Carthage/Build/iOS
拖动Infoset.xcframework
到"已嵌入的二进制文件"部分。确保选择了“如果需要则复制项目”,并点击完成。
手动安装
您可以在不使用依赖管理器的情况下手动将Infoset iOS SDK集成到项目中。
- 下载Infoset iOS SDK并将其解压。
- 将
Infoset.xcframework
拖入您的项目中。
- 在您的应用程序的目标设置中,将Infoset.xcframework设置为“嵌入并签名”。这可以在“通用”选项卡的“框架、库和已嵌入的内容”部分中找到。
- 在您的应用程序目标中创建一个新的"运行脚本阶段",并将以下代码片段粘贴到脚本文本字段中
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。