如何使用Swift快速集成环信IM iOS SDK并实现单聊

news/2025/2/16 1:32:34/

本文介绍如何使用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) inif 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) inif let error = aError {// 发送失败处理} else {// 发送成功处理}
}

至此,即时通讯的基本功能已经集成完,如果您在集成中遇到问题可以随时联系环信技术支持或IMGeek社区提问。

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


http://www.ppmy.cn/news/55196.html

相关文章

Java新提案,最终还是靠近C#了

Java是一门非常优秀的编程语言&#xff0c;特别是生态繁荣&#xff0c;成熟的轮子很多&#xff0c;各种解决方案都有&#xff0c;要开发一个项目&#xff0c;只需把轮子组装&#xff0c;并根据自己的项目&#xff0c;进行自定义修改&#xff0c;可以极大地提升开发效率。 曾经…

初识springboot【手把手教你搭建springboot项目】+springboot日志详解【超详细】

目录 一.springboot的概念 1.什么是springboot&#xff1f; 二.使用springboot进行开发的优势 springboot的设计原则是什么&#xff0c;使用springboot进行开发具有怎样的优势&#xff1f;&#xff08;M&#xff09; 三.手把手搭建一个springboot项目 ①创建项目并选择依赖…

VS+Qt+C++银行排队叫号系统

程序示例精选 VSQtC银行排队叫号系统 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<VSQtC银行排队叫号系统>>编写代码&#xff0c;带用户登录&#xff0c;管理员登录&#xff…

从历史天气预报 API 看气象大数据的商业价值

引言 近年来&#xff0c;随着气象观测技术的不断提升和气象大数据的快速发展&#xff0c;越来越多的企业开始将气象数据应用于商业领域。其中&#xff0c;历史天气预报 API 作为一种可获取历史气象数据的接口&#xff0c;具有广泛的商业应用价值。 本文将从历史天气预报 API …

只需5分钟,深刻理解本地事务状态表方案|分布式事务系列(四)

之前我们已经讲过了最基础的CAP、BASE理论&#xff0c;然后介绍了强一致性方案XA、2PC和3PC&#xff0c;然后详细讲述了TCC在生产中的应用场景和原理。本文继续讲解最终一致性方案——本地事务状态表方案。 点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c;…

DIY可视化必看教程 FLEX组件使用,教大家如何布局界面

DIY可视化必看教程FLEX组件使用 水平布局实现、两端对齐 1、拖个FLEX组件过来&#xff0c;排列方向改为水平。 2、拖个文件内容组件进去、栅格化到0 3、复制多一个文本内容组件 4、修改FLEX组件显示对齐方式 5、图标对齐 6、修改FLEX组件对齐方式 7、修改中间占位大&#xff0…

线程池~~

文章目录 线程池线程池实现API、参数说明线程池处理Runnable任务线程池处理Callable任务Executors工具类实现线程池定时器Timer定时器ScheduledExecutorService定时器 并发和并行线程的生命周期 线程池 线程池实现API、参数说明 线程池处理Runnable任务 线程池处理Callable任务…

FreeRTOS任务的创建(动态方法和静态方法)

文章目录 前言一、FreeRTOS任务基本概念二、动态创建任务三、静态创建任务四、静态创建任务和动态创建任务的区别五、任务的删除总结 前言 本篇文章将介绍FreeRTOS任务的创建&#xff08;动态方法和静态方法&#xff09;&#xff0c;了解什么是任务和任务的具体创建方法。 一…