更新时间:2022-02-28
本文介绍如何快速集成环信即时通讯 IM iOS SDK 实现单聊。
参考以下步骤在 Xcode 中创建一个 iOS 平台下的 Single View App,项目设置如下:
HyphenateChatQuickstart
。hyphenatechat
。SDK 支持 CocoaPods 导入和手动导入两种方式。
pod init
命令。项目文件夹下会生成一个 Podfile 文本文件。# platform :ios, '10.0'
target 'EMChatQuickstart' do
pod 'HyphenateChat'
end
pod update
命令更新本地库版本。pod install
命令安装 HyphenateChat SDK。成功安装后,Terminal 中会显示 Pod installation complete!
,此时项目文件夹下会生成一个 workspace 文件。国内开发者如果遇到网络问题导致 pod 命令无法执行,可使用国内镜像源,例如 Gitee 镜像源 或 TUNA 镜像源。
HyphenateChat.framework
至项目路径下。添加完成后,项目会自动链接所需系统库。
在工程的 AppDelegate 中的以下方法中,调用 SDK 对应方法。
{
// appkey 替换成你在环信即时通讯 IM 管理后台注册应用中的 App Key
EMOptions *options = [EMOptions optionsWithAppkey:@“appkey”];
// apnsCertName是证书名称,可以先传 nil,等后期配置 APNs 推送时在传入证书名称
options.apnsCertName = nil;
[[EMClient sharedClient] initializeSDKWithOptions:options];
return YES;
}
向工程中导入 Chat 文件。
// ConversationId 接收消息方的环信ID:@"user2"
// type 聊天类型:EMConversationTypeChat 单聊类型
// createIfNotExist 如果会话不存在是否创建会话:YES
EMChatViewController *chatViewController = [[EMChatViewController alloc] initWithConversationId:@"user2" conversationType:EMConversationTypeChat];
[self.navigationController pushViewController:chatViewController animated:YES];
有导航的话,可以用 push 方式跳转到聊天页面发消息测试,也就是用登录的 user1 给 user2 发消息,没有导航的话,可以用 present 方式跳转到聊天页面。
异步方法
[[EMClient sharedClient] registerWithUsername:@"username"
password:@"your password"
completion:^(NSString *aUsername, EMError *aError) {
}];
[[EMClient sharedClient] loginWithUsername:@"username"
password:@"your password"
completion:^(NSString *aUsername, EMError *aError) {
}];
// create a message 创建消息
EMChatMessage *message = [[EMChatMessage alloc] initWithConversationID:@"user2"
from:@"user1"
to:@"user2"
body:TextMessageBody
ext:@{}];
// send message
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:^(EMChatMessage *message, EMError *error) {
}];