FinChat SDK 客户端集成教程之IOS篇



  • 集成 iOS SDK 前的准备工作

    注册申请凡泰极客开发者账号,申请AppId,AppKey

    详细请咨询相关接口人。

    iOS SDK 介绍及导入

    iOS SDK 介绍

    FinoChat SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架。包括以下几个部分:

    • SDK_Core: 为核心的消息协议实现,完成与服务器之间的信息交换。
    • SDK: 是基于核心协议实现的完整的 IM 功能,实现了不同类型消息的收发、会话管理、群组、好友、聊天室等功能。
    • HttpEngine: H5资源加速服务组件
    • ConvoUI: 会话型UI交互组件
    • FinoChatClient: 是 SDK 的入口,主要完成初始化等功能,也是获取其他模块的入口。
      • AccountApi: 负责账户管理相关功能,包括登入、登出等。
      • ContacApi: 负责好友的添加删除,黑名单的管理。
      • GroupApi: 负责群组的管理,创建、删除群组,管理群组成员等功能。
      • ChatRoomApi: 负责聊天室的管理。
      • UIApi: 是一组 IM 相关的 UI 控件,旨在帮助开发者快速集成FinoChat SDK。
        • ChatUI: 消息聊天界面UI
        • ConversationUI: 会话列表UI
        • MineUI: “我”的信息UI
        • ContactUI: 通讯录UI

    集成 iOS SDK

    在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念,SDK支持iOS8及以上iOS版本。

    下载SDK

    注: 由于 iOS 编译的特殊性,为了方便开发者使用,我们将 i386 x86_64 armv7 arm64 几个平台都合并到了一起,所以使用动态库上传appstore时需要将i386 x86_64两个平台删除后,才能正常提交,删除方式请参考下文中的“集成动态库上传AppStore”

    手动导入 SDK

    您可以到凡泰极客官网下载FinoChat SDK。

    到此您已经下载好了 SDK,下面开始学习 SDK 的集成使用吧!

    SDK 目录讲解

    从官网上下载下来的包中分为如下五部分:

    1. 凡泰极客 iOS FinoChatSDK 开发使用
    2. 凡泰极客 iOS doc SDK 相关API文档
    3. 凡泰极客 iOS FinoChatSwiftDemo 工程源码
    4. 凡泰极客 iOS FinoChatSwiftDemo-x.x.x.ipa 打包的 ipa
      具体接口讲解请转到 Api Docs。

    第三方库介绍

    FinoChatUI 中用到的第三方库:

    • AFNetworking: 网络加载框架
    • MJRefresh: 用于页面刷新
    • libopencore-amrnb.a,libopencore-amrwb.a: 用于 amr 与 wav 之间的转换
    • Masonry: 布局
    • ReactiveObjc: 响应式框架
    • SDWebImage: 图片缓存

    1. 创建podfile文件

    如果对使用Cocopods集成第三方库比较熟悉的话,使用Podfile文件,配置Pod仓库地址

    source 'https://git.finogeeks.com/cocoapods/finogeeks'
    source 'https://github.com/CocoaPods/Specs.git'
    

    添加依赖的库:

    pod 'FinChat-Mixins'
    

    如果对使用cocopods不熟悉,可以将下面的内容拷贝到Podfile文件里。

    完整的示例podfile文件:

    platform :ios, "9.0"
    source 'https://git.finogeeks.com/cocoapods/finogeeks'
    source 'https://github.com/CocoaPods/Specs.git'
    
    inhibit_all_warnings!
    
    def podFrameWork
        pod 'FinChat-Mixins'
    end
    
    target "FinChat" do 
        podFrameWork
    end
    
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
                config.build_settings['ENABLE_STRICT_OBJC_MSGSEND'] = 'NO'
                config.build_settings['APPLICATION_EXTENSION_API_ONLY'] = 'NO'
        end
      end
    end
    

    这里需要注意 target 后面的 "FinChat"是你新建的工程的target名字,你需要将其修改为你的工程的target名字。

    2.安装pod依赖库

    在 Mac 电脑 终端里,进入到podfile 所在的目录,然后执行如下命令,安装依赖的库
    执行命令:

    pod install
    

    3.重新打开工程

    因为使用了pod 集成,所以要用xxxx.xcworkspace打开工程。

    注意:因为使用了pod 集成,所以要用xxxx.xcworkspace打开工程。
    注意:这里不是用xxxx.xcodeproj打开。

    4.修改工程配置

    1. Xcode 10以上的版本,需要设置File->Workspace Settings->Build System为:【Legacy Build System】。

    1. 在Project->Build Settings->Bitcode 设置为【NO】。

    5.在appDelegate中设置SDK的配置信息

    可以参考Demo工程,初始化SDK:

    5.1 注意事项

    如果不需要多个app共享数据功能,则可以跳过此步骤。

    1. 如果要多个app共享数据,则要把【工程】 --->【Capabilities】中的App Groups 开关打开。

    1. 在 [FinAppTool appConfiguration]方法里设置app group的id

    6.登录接口

    - (void)login:(NSString*)username
         password:(NSString*)password
          success:(void (^)(NSDictionary*))success
          failure:(void (^)(NSError *))failure;
    

    可以这样调用:

    [[FinoChatClient sharedInstance].finoAccountManager login:@"" password:@"" success:^(NSDictionary *result) {
            
        } failure:^(NSError *error) {
            
        }];
    

    7.使用SDK页面

    初始化会话列表页面:

    UIViewController *conversationVC =  [[FinoChatClient sharedInstance].finoChatUIManager conversationViewController];
    

    初始化通讯录页面:

    UIViewController *contactsVC =  [[FinoChatClient sharedInstance].finoChatUIManager addressBookControllerWithContactsDelegate:nil contactsDataSource:nil];
    

    至于是push 还是present 出来,就看自己情况使用即可。

    8.更多接口

    更多接口信息请查看接口文档