IOS 客户端快速开发

本页面供快速集成使用,了解更多请访问详细文档

前期准备

美信拓扑 IM SDK 提供两种集成方式,可以通过 CocoaPods 自动集成我们的 floo-ios,也可以通过手动下载 floo-ios.framework, 手动添加到项目中。

方式一:自动集成/CocoaPods

提示:如果未安装cocoapods,请参照 CocoaPods安装

  1. 在 Podfile 文件中加入 floo-ios :

    pod 'floo-ios'
  2. 执行安装 ,命令如下

    pod install

    提示:如果无法安装 SDK 最新版本,运行以下命令更新本地的 CocoaPods 仓库列表

    pod repo update

方式二:手动集成

  1. 下载 floo-ios.framework , 然后将文件引用到您的项目中。

  2. 添加系统库依赖

    您除了在工程中导入 SDK 之前,还需要添加如下系统库的引用。

    • libsqlite3.tbd

    • libc++abi.tbd

    • libsqlite3.tbd

    • libstdc++.tbd

    • libz.tbd

    • libc++.tbd

    • libresolv.tbd

    • libcrypto.a

    • UIKit.framework

    • QuartzCore.framework

    • ImageIO.framework

    • CoreVideo.framework

    • CoreMedia.framework

    • CoreGraphics.framework

    • AVFoundation.framework

    • AssetsLibrary.framework

    注意:

    如果您的工程内已经引用libcrypto.a,为避免引入冲突不需要再次导入工程。

    如果您的工程内没有引用libcrypto.a,请解压下载的SDK包将libcrypto.a导入工程。

  3. 在 Xcode 项目 Build Settings - Other Linker Flags 中,增加 "-ObjC"。

  4. 设置 App 支持 HTTPS

  5. 推送证书制作

快速集成

一、初始化

在您需要使用MaxIM SDK 功能的类中,import 相关头文件。

您在使用MaxIM SDK 所有功能之前,您必须先调用此方法初始化 SDK。 在 App 的整个生命周期中,您只需要将 SDK 初始化一次。

二、注册用户

通过 BMXClient的单例,UserService类,传入 -signUpMobile:password:vertifyCode:userName:方法,注册IM账户。

三、登录链接服务器

将您在上一步获取到的 账号密码,通过 BMXClient的单例,UserService类,传入 -signInById 方法,即可建立与服务器的连接。

提供两种登录模式:一种是普通手动登录,另一种是快速登录模式

四、会话列表功能

通过 BMXClient的单例,ChatService类,传入 -getAllConversationsWithCompletion 方法,获取所有会话列表。返回BMXConversation对象的数组列表。

如果需要获取多设备同步的离线会话列表,需要在SDK初始化配置loadAllServerConversations属性值为Yes,默认只获取本地会话列表。

五、断开连接

在断开与MaxIM服务器的连接时,默认会停止接收远程推送,会自动解绑设备devicetoken.

用户好友

  • 添加好友

  • 删除好友

  • 同意添加好友

  • 拒绝添加好友

  • 获取好友列表

    开发者可以通过参数哦forceRefresh,选择从服务器或者是从本地获取好友列表数据。

    如果设置为NO, 当本地数为空,会自动从服务器去获取数据后返回结果。

基础功能

单聊

单聊是最基本的聊天界面,提供文字、表情、语音片段、图片等多种输入内容,解决 App 内用户的沟通瓶颈。单聊的 BMXConversationType 是 BMXConversationSingle,toId 是单聊对象的 userId。

群聊

群组的 BMXConversationType 是 BMXConversationGroup,toId 是群组 Id。

  • 创建群组

开发者可以注册监听,创建群组成功后, 收到相应回调通知,开发者可以进行一些UI处理。

  • 加入群组

  • 退出群组

  • 解散群组

  • 获取群成员列表

  • 获取群组列表

  • 获取群组信息

消息发送

登录成功之后才能进行聊天操作。发消息时,单聊和群聊调用的是统一接口,区别只是要设置下 BMXConversationType

消息的远程推送:

开发者配置好远程推送的证书,且在代码中申请好权限,并将 deviceToken 传给MaxIM服务器,当接收者不在线的时候,MaxIM服务器会自动通过远程推送将消息发过去。

注: 推送的内容由发送消息接口的 pushContent 字段决定,内置消息发送的时候如果该字段没有值,将使用默认内容推送;自定义消息必须设置该字段,否则将不会推送。

以下是将 deviceToken 传给MaxIM接口

构建消息实体

文本消息

图片消息

文件消息

位置消息

语音消息

消息操作

消息实体构建完成后,通过 BMXClient的单例,ChatService类,调用 -sendMessage: 方法,将构建好的消息实体传入,即可实现消息发送

  • 发送

  • 转发

  • 重发

  • 撤回

  • 下载消息附件

消息接收监听

注册消息回调

  • 接收到消息通知

  • 消息发送后状态回调通知

  • 附件消息发送状态回调

  • 消息提醒设置 通过 BMXClient的单例,UserService类,以下方法可以设置消息推送提醒

p - (void)setEnablePushDetail:(BOOL)enablePushDetail completion:(void(^)(BMXError *error))aCompletionBlock;

  • 附件消息下载状态变化

功能进阶

BMXMessageObject实体中,提供可扩展属性(extensionJson 和 configJson) extensionJson 为开发使用的扩展字段,例如编辑状态。 configJson 为SDK自用的扩展字段,例如mention功能,push功能

  • 群组@功能

    群组中支持 @ 功能,满足您 @ 指定用户或 @ 所有人的需求,开发者在BMXMessageObject中通过设置configJson 来实现群主@功能,已经@成员后的会下发推送通知

  • 消息正在输入状态

  • 消息阅读回执

  • 多端阅读消息数同步

    BMXConversation 实体提供消息未读数量和会话中所有消息数量 /** 未读消息数量 */ @property (nonatomic,assign, readonly) NSInteger unreadNumber;

  • 消息搜索

    根据关键字搜索指定消息内容

Last updated

Was this helpful?