跳转到内容

快速入门

你可以通过以下教程快速了解 IM 的用法。同时,你可以通过 IM Demo 进行体验。

环境准备

  • 支持 Xcode 7.0 及以上版本
  • 支持 iOS 8.0 及以上版本

首先,你需要在控制面板中创建应用。请参考 控制面板-创建应用。

SDK 的安装方式有两种,你可以任选其一:

  • 使用 CocoaPods

要将 Wilddog IM SDK 导入到你的工程中,推荐使用 CocoaPods,如果没用过 CocoaPods,请先访问 CocoaPods getting started。

打开工程目录,新建一个 Podfile 文件:

$ cd your-project-directory
$ pod init
$ open -a Xcode Podfile # opens your Podfile in XCode

然后在 Podfile 文件中添加以下语句:

pod 'WilddogIM'

最后安装 SDK:

$ pod install
$ open your-project.xcworkspace

- **手动集成**
1. 下载 Sync SDK 点此下载。 2. 下载 Core SDK 点此下载。 3. 下载 Auth SDK 点此下载。 4. 下载 IM SDK 点此下载。 5. 把 WilddogSync.framework、WilddogCore.framework、WilddogAuth 和 WilddogIM 拖到工程目录中。 6. 选中 Copy items if needed 、Create Groups,点击 Finish。 7. 点击工程文件 -> TARGETS -> General,在 Linked Frameworks and Libraries 选项中点击 '+',将 JavaScriptCore.framework、 libsqlite3 加入列表中。
#import <WilddogIM/WilddogIM.h>

IM 的用户系统完全兼容 Wilddog Auth 产品的用户系统。你可以使用 Auth 的邮箱、电话、匿名等登录方式与 IM 结合使用,也可以使用 Auth 产品的 customToken 的方式来集成开发者的已有用户系统。 用 customToken 的方式,首先需要提供野狗 Server SDK 生成的 customToken,开发者需要提供用户的 ID、昵称、头像。 具体流程如下:

  1. 客户端向开发者服务器请求 customToken。
  2. 开发者服务器使用野狗 Server SDK 生成 customToken 返回给客户端。
  3. 客户端使用 customToken 登录 Wilddog IM 服务。
// 用 Wilddog Auth Token 登录
[[WDGAuth auth] signInWithCustomToken:wilddogToken completion:^(WDGIMUser * _Nullable currentUser, NSError * _Nullable error) {
if(!error){
// 初始化 SDK。
[[WDGIM im] setDelegate:self];
}
}];

提示:

你可以在 控制面板 - 即时通讯 - 接口测试 中手动生成 Token 用于测试。

发起聊天需要三个步骤:

  1. 创建会话
  2. 创建消息体
  3. 发送消息

例如,发送一条文本消息:

//创建会话,传入的数组中默认包含登录用户 ID
[[WDGIMClient defaultClient] newConversationWithMembers:@[@"UserID"] completion:^(WDGIMConversation * _Nullable conversation, NSError *__autoreleasing _Nullable * _Nullable error) {
//创建文字消息
WDGIMMessageText *textMessage = [WDGIMMessage messageWithText:@"Hello, Wilddog!"];
//发送消息
[conversation sendMessage:textMessage completion:^(WDGIMMessage * _Nullable msg, NSError * _Nullable err) {
//msg 是发送成功后的消息
}];
}];

WDGIMClientDelegate 的代理方法 -wilddogClient:didRecieveMessages: 用于接收新消息。

//实现监听消息的方法
- (void)wilddogClient:(WDGIMClient *)client didRecieveMessages:(NSArray<WDGIMMessage *> *)messages
{
for (WDGIMMessage *msg in messages) {
switch (msg.messageType) {
//文本消息
case WDGIMMessageTypeText:
break;
//图片消息
case WDGIMMessageTypeImage:
break;
//语音消息
case WDGIMMessageTypeVoice:
break;
default:
break;
}
}
}