默认
发表评论 0
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
如何使用Swift快速集成环信IM iOS SDK并实现单聊
阅读(14098) | 评论(0 收藏 淘帖

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


前提条件

• Xcode (推荐最新版本)。

• 安装 iOS 10.0 或更高版本的 iOS 模拟器或 Apple 设备。

• CocoaPods 1.10.1 或更高版本。

• 有效的环信即时通讯 IM 开发者账号(注册环信账号)和 App Key,见 环信即时通讯云管理后台。

• 如果你的网络环境部署了防火墙,请联系环信技术支持设置白名单。


集成方式

使用CocoaPods来添加环信SDK,具体步骤如下:


platform :ios, ‘10.0’

use_frameworks!


target ‘YourTarget’ do

pod ‘HyphenateChat’, ‘~> 4.0.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.登录环信服务器

注册服务端账号:http://docs-im-beta.easemob.com/document/server-side/account_system.html


EMClient.shared().login(withUsername: "yourUsername", password: "yourPassword") { (aUserName, aError) in

            if aError != nil {

                //登录失败处理

                print("\(aUserName) login fail")

            }else {

                //登录成功处理

                print("\(aUserName) login success")

            }

        }


6.发送消息

初始化聊天页面文档链接:http://docs-im-beta.easemob.com/document/ios/quickstart.html#_4-


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/

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

推荐方案
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部