搜了一下阿里百川, 发现文档很少, 于是就打算写一篇博客, 供后来者少华一些时间在集成和开发上.

客户端集成很简单, 官方文档写的也很清楚.

客户端的集成

Step1 下载SDK包

  • 如果您已经获得Demo包,则可以跳过这一步

  • 打开Demo下载页面

  • 下载iOS Demo并解压缩。

Step2 添加OpenIM SDK Framework

  • 将云旺(OpenIM) Demo中的WXFrameworks目录直接拖入你的Xcode工程中

  • 在弹出的对话框中勾选Copy items if needed后,点击Finish。

    注意:如果没有添加WXOpenIMSDKResource.bundle,会引起异常Crash。

    注意:如果没有添加WXOUIModuleResources.bundle,您可能在打开IM页面时界面元素为空白。

    注意:目录中包含的身份图片yw_1222.jpg不能被重命名

    注意:在你正式发布应用之前,您务必需要使用自己申请的身份图片,并测试IM功能是否正常。现在,您可以暂时跳过这一步,以便快速的完成集成工作。您可以从以下链接中了解如何申请您自己的身份图片。

  • 参见:应用创建和管理

  • 参见:您的专属身份图片

Step3 添加系统库

云旺(OpenIM)依赖于这些系统库,您需要将他们添加到工程中:

  • UIKit.framework
  • AddressBook.framework
  • SystemConfiguration.framework
  • CoreLocation.framework
  • CoreTelephony.framework
  • CoreData.framework
  • libz.tbd
  • libstdc++.6.0.9.tbd
  • MobileCoreServices.framework
  • ImageIO.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • AssetsLibrary.framework

注意:在xcode7之前的版本,没有.tbd的库,而是.dylib

不知道如何添加系统库?请参考:如何添加系统库图例

Step4 修改编译选项

  • 云旺(OpenIM) SDK内部使用了ObjectiveC的Category,所以开发者需要在Target->Linking->Other Linker Flags中添加-ObjC选项,以保证这些Category能够正常工作。

    不知道如何修改编译选项?请参考:如何修改编译选项

    注意:请注意-ObjC的大小写。

    注意:如果您没有添加-ObjC编译选项,在初始化WXOSdk时会发生crash。

  • 完成以上5步后,您的链接库和资源拷贝应该类似于:

Step5 拖入胶水代码,最快捷的集成方式

  • 胶水代码

    顾名思义就是将您的App和IMSDK粘合起来的中间代码。其中包含对IMSDK主流程接口的调用代码,例如初始化、登录准备、登录、注销、打开会话列表、打开聊天页面等。

    注意:Demo提供了基础的胶水代码,你可以将其拖动到工程中。并且在didFinishLaunchingWithOptions:你App的用户登录成功你App的用户注销这几个函数中调用几个基础入口胶水函数,可完成初步的集成。

    • 基础入口胶水函数:我们把在相同时刻调用的多个胶水函数汇聚到了几个入口胶水函数中,如下:

      • callThisInDidFinishLaunching
      • callThisAfterISVAccountLoginSuccessWithYWLoginId
      • callThisBeforeISVAccountLogout

    注意:进一步地,胶水代码(SPKitExample.m)中包含了特地设置的#warning,请仔细阅读这些warning的注释,根据实际情况调整代码,以符合你的需求。

  • 拖动到工程

    WXOpenIMSampleRelease/WXOpenIMSampleDev/目录找到MainLogicCustomize这两个子目录,拖动到工程中,在弹出的对话框中勾选Copy items if needed后,点击Finish

  • 注意:

    胶水代码并不属于IMSDK的一部分,而只是对IMSDK接口调用的进一步集中整合,你当然也可以不通过胶水代码的方式集成IMSDK,参考Demo工程胶水代码对IMSDK的使用方式,自己编写胶水代码

Step6 初始化IMSDK

  • 引入胶水代码头文件SPKitExample.h,调用基础入口胶水函数callThisInDidFinishLaunching

    一般在-[AppDelegate didFinishLaunchingWithOptions:]函数中初始化IMSDK

    #import "SPKitExample.h"
    @implementation AppDelegate
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [[SPKitExample sharedInstance] callThisInDidFinishLaunching]; return YES; }
  • 基础入口胶水函数callThisInDidFinishLaunching,其中包含:

    步骤 函数
    初始化 exampleInit
    设置APNSPush处理回调 exampleHandleAPNSPush
    设置全局导航栏颜色 exampleCustomGlobleNavigationBar

    注意: exampleInit23015524是Demo中使用的示例AppKey。您需要在申请App成功后,替换为您的AppKey。在快速集成时,你可以先跳过申请App这个步骤。

  • 这样, 差不多客户端就集成的差不多了, 我这里想说的是:其实上面写那么麻烦, 其实你只要把
  • 这demo中的这两个文件夹拖到你的工程, 在库文件的页面跟demo比对一下, 然后再导入一些需要的系统的库, 在WXOpenIMSampleRelease/WXOpenIMSampleDev/目录找到MainLogicCustomize这两个子目录,拖到你的工程中,然后 在Target->Linking->Other Linker Flags中添加-ObjC选项,以保证这些Category能够正常工作, 编译一下, 会出现方法找不到的错误, 那是你没导入BarButomn的一个类目, 在demo中找到他, 导入就OK了.

服务端的集成

在这个页面http://open.taobao.com/docs/api.htm?spm=a219a.7395905.0.0.WmFTMt&scopeId=11574&apiId=25830查看要用的一些api, 然后可以在这个页面http://open.taobao.com/apitools/apiTools.htm?spm=a219a.7395905.0.0.6teRU2&catId=20654&apiId=26112&apiName=taobao.openim.chatlogs.import&scopeId=11574对个API进行测试.

我服务器语言对php比较熟, 所以服务端选择了php的topSDK, 大家可以根据自己的情况选择. 在本地开服务器进行测试, 如果可以, 恭喜你, 服务端的集成就OK了.

开发完成后, 就可以将它挂到服务器上了.

转载于:https://www.cnblogs.com/mafeng/p/5815710.html

iOS-集成阿里百川IMSDK的服务端及客户端相关推荐

  1. iOS集成阿里百川,主线成阻塞问题

    集成阿里百川,调用[AlibcTradeSDK sharedInstance].tradeService openByUrl 方法打开淘宝时,页面调起特别慢,xcode控制台提示主线成阻塞,如下图以为 ...

  2. iOS集成阿里百川遇到的问题记录

    按照官方文档集成编译后出现以下错误: 问题1: 解决方法:缺少数据库支持,导入libsqlite3.0.tbd即可. 问题2: 解决方法:添加libresolv.tbd库. 问题3: 解决方法:添加C ...

  3. Java常用工具类-发短信(集成阿里云短信服务)

    1.注册阿里账号并开通短信服务 注册阿里账号后,并进行个人或企业实名认证,实名认证后,才能开通短信服务. 界面如下: 2.获取AccessKey 参考获取AccessKey方法 创建成功后,如下图: ...

  4. 搭建阿里云服务器,实现服务端与客户端socket数据通信(详细版)

    文章目录 0 引言 1. 注册账号.免费申请阿里云服务器 2. 配置服务器环境 3. 远程连接服务器 4. 给服务器传输文件 5. 可能出现的问题 0 引言 最近在做一个项目,需要用到一个客户端(电脑 ...

  5. SpringBoot集成阿里云短信服务

    SpringBoot集成阿里云短信服务 1.准备工作 2.项目集成 2.1 添加依赖 2.2 配置文件 2.3 业务逻辑实现 在实际项目中经常有发送短信的功能,今天进说一下对接阿里云短信服务实现短信发 ...

  6. springboot集成阿里云短信服务,实现发送短信功能

    springboot集成阿里云短信服务,实现发送短信功能 准备工作: 1.登陆阿里云->进入控制台->开通短信服务(进入后根据提示开通) 2.充值(借人家平台发短信你以为不要钱的?我充了3 ...

  7. 分布式电商项目二十六:使用阿里云存储的服务端签名后直传(前端联调)

    使用阿里云存储的服务端签名后直传(前端联调) 在前端显示上传的界面,可以根据人人fast-vue的结构,在src\components目录下添加upload文件夹,直接添加vue组件即可,总计三个组件 ...

  8. SpringBoot(23) 集成socket.io服务端和客户端实现通信

    一.前言 websocket和socket.io区别? websocket 一种让客户端和服务器之间能进行双向实时通信的技术 使用时,虽然主流浏览器都已经支持,但仍然可能有不兼容的情况 适合用于cli ...

  9. SpringBoot集成阿里云存储OSS服务

    前言 该文章会先简单的介绍一下阿里云的OSS存储,然后演示如何在SpringBoot项目中集成OSS,每一步都有记录,保证初学者也能看懂. 文章目录 前言 1.阿里云存储OSS是什么? 2.Sprin ...

最新文章

  1. Python 从入门到精通:一个月就够了!
  2. 在mysql中创建表的命令行_如何在命令行创建一个MySQL数据库
  3. Apache虚拟目录和多端口多主机名配置
  4. ERP开放平台定制化远程高效协作秘笈
  5. 前端学习(3157):react-hello-react之一个简单的helloworld
  6. Apriori算法-java
  7. 什么叫做数字功放?它的电路原理是什么?
  8. linux suid 脚本,Linux使用suid vim.basic文件实现提权
  9. boost正则表达式库简单介绍
  10. 序列化和反序列化的概念
  11. WPF MVVM 架构 Step By Step(4)(添加bindings - 完全去掉后台代码)
  12. php 页面字体大小,CSS_做网页字体大小参考 网页中同字号字体的不同单位对比列表,对于WEB前端页面开发,字体大 - phpStudy...
  13. android 支付宝插件红包,支付宝找红包插件
  14. java基本的商品管理系统
  15. Python~numpy.random.seed()方法
  16. 基因组测序分析linux,基因组数据的重测序分析
  17. 项目管理-团队建设与团队管理
  18. uva 1647(规律)
  19. STM32CubeIDE开发(十六),I2C协议采集传感器数据(SHTC1、LTR-553ALS、BMP280、LSM6DSL、MMC3680KJ)
  20. qt官网下载指导(新手易犯错误)

热门文章

  1. 利用可分离卷积UNet进行木薯叶病分类
  2. 基于图像处理技术的柑橘病害自动检测与分类
  3. AI学习笔记(十一)CNN之图像识别(上)
  4. 从零开始刷Leetcode——数组(118.119.121)
  5. ICDAR发票识别冠军(文字检测Corner)
  6. 知识图谱中的关系推理
  7. 中文问句匹配冠军团队的NLP读书会笔记分享
  8. flask ajax 文件上传,使用ajax上传Python flask文件请求.files空的
  9. php yaf框架 校验登录,yaf框架是get或post请求的判断
  10. loss函数之MarginRankingLoss