关于ios:使用Swift快速集成环信IM-iOS-SDK并实现单聊

2次阅读

共计 1770 个字符,预计需要花费 5 分钟才能阅读完成。

本文介绍如何应用 swift 疾速集成环信即时通讯 IM iOS SDK 实现单聊。

前提条件

• Xcode (举荐最新版本)。
• 装置 iOS 10.0 或更高版本的 iOS 模拟器或 Apple 设施。
• CocoaPods 1.10.1 或更高版本。
• 无效的环信即时通讯 IM 开发者账号(注册环信账号)和 App Key,见 环信即时通讯云治理后盾。
• 如果你的网络环境部署了防火墙,请分割环信技术支持设置白名单。

集成形式

应用 CocoaPods 来增加环信 SDK,具体步骤如下:

platform :ios, ‘9.0’
use_frameworks!

target ‘YourTarget’ do
pod ‘HyphenateChat’, ‘~> 4.2’
end

而后在终端中运行 pod install,即可将环信 SDK 增加到我的项目中。

因为环信 sdk 是 OC 的代码,所以须要创立桥接文件 (Bridging Header) 来让 Swift 能够调用 Objective- C 的代码和库。上面是创立桥接文件的步骤:

1. 创立桥接文件

在 Xcode 我的项目中,抉择 File -> New -> File…,在弹出的对话框中抉择 iOS -> Source -> Header File,而后给该文件起一个名字,例如 YourProjectName-Bridging-Header.h

2. 配置桥接文件选项

在桥接文件的属性中,设置 Objective-C Bridging Header 选项。具体操作如下:
• 选中我的项目,在 Xcode 菜单中选择 Build Settings
• 在搜寻框中输出 bridging header,找到 Objective-C bridges Header 选项
• 双击该选项,而后在弹出的对话框中输出桥接文件的门路,例如 $(SRCROOT)/YourProjectName/YourProjectName-Bridging-Header.h

3. 导入 Objective- C 头文件

// YourProjectName-Bridging-Header.h
#import <HyphenateChat/HyphenateChat.h>

4. 初始化环信 SDK

在 AppDelegate.swift 文件中的 application(_:didFinishLaunchingWithOptions:)办法中初始化环信 SDK。以下是初始化代码示例:

      let options = EMOptions(appkey: "yourappkey#demo")
let error = EMClient.shared().initializeSDK(with: options)
     if error == nil {// 初始化胜利} else {// 初始化失败}

5. 登录环信服务器

EMClient.shared().login(withUsername: "yourUsername", password: "yourPassword") {(aUserName, aError) in
            if aError != nil {
                // 登录失败解决
                print("\(aUserName) login fail")
            }else {
                // 登录胜利解决
                print("\(aUserName) login success")
            }
        }

6. 发送音讯

let chatText = "Hello, World!"
let message = EMChatMessage(conversationID: "yourConversationID", from: "yourFrom", to: "yourTo", body: EMTextMessageBody(text: chatText), ext: ["yourKey": "yourValue"])
message.chatType = EMChatTypeChat // 设置为单聊音讯
EMClient.shared().chatManager?.send(message, progress: nil) {(aMessage, aError) in
    if let error = aError {// 发送失败解决} else {// 发送胜利解决}
}

至此,即时通讯的基本功能曾经集成完,如果您在集成中遇到问题能够随时分割环信技术支持或 IMGeek 社区发问。

SDK 地址:https://www.easemob.com/download/im
IMGeek 社区:https://www.imgeek.net/

正文完
 0