阿里百川

一、关于即时通讯 
我们都知道,即时通讯比较老的框架xmpp协议,但是xmpp差不多要被淘汰了,为什么这么说,个人觉得因为xmpp效率太低了。对于通讯协议功能,如果不是作为项目的核心功能,大可不必自己开发,市场上又很多已经封装好了的即时通讯,可以直接拿过来用即可。(节省购买服务器、维护成本)那么,现在市场上又哪些比较好的第三方即时通讯呢?比较经常听说的有:环信、融云、荣联云、百川等。环信是基于xmpp协议进行的封装,不建议。融云和容联云可用,但是界面移植性太差,通常技术人员为了节省时间,直接移植他们官网上的demo,整个整合导入自己的项目中,调用相应的接口即可。但是,这样有一个小问题,就是可能你不需要部分功能支持的静态库也一并导入你的工程,这样会导致你工程包变得很大。在做技术选型的时候就应该综合了上面所有,最后选择阿里百川解释通讯。

二、关于百川sdk 
百川是阿里巴巴旗下的无线开放平台,基于世界级的后端服务和成熟的商业组件,快速搭建App和提供卓越用户体验,开拓广告、商品、生活服务等无线新商业。支持群聊、单聊、建群、@、发送图片、文字、语音、文件、自定义消息、推送等功能。整合简单迅速,功能扩展性也高。

二、移植百川的sdk 
1、注册账号 
2、根据build id 创建移动应用 
注意: 如果,这里是两个不同app之间相互通讯,就需要创建两个移动应用,拿到两个不同的appkey。这两个appkey就用到两个地方,一个是初始化sdk,另外一个就是跨站聊天发送消息。 
3、根据项目需要,配置最新的sdk,进行集成生成,然后下载。 
注意: sdk不能直接用百川提供的demo里面的sdk,因为demo里面的sdk可能不是最新的。也有一些静态库可能工程不需要用到。所有,你只能在创建应用后,根据你的需要,你勾选集成统一生成最新的sdk出来。 
4、将生成的sdk直接导入工程。(在弹出的对话框中勾选Copy items if needed后,点击Finish。) 
5、添加系统依赖库

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

6、修改编译选项 
SDK内部使用了ObjectiveC的Category,所以开发者需要在Target->Linking->Other Linker Flags中添加-ObjC选项,以保证这些Category能够正常工作。

三、关于一些核心功能并注意事项的说明(这里主要针对单聊) 
1、关于初始化sdk 
这里写图片描述
这里需要关闭百川的打印日志,默认yes 
这里写图片描述

2、关于登录 
为什么连登录都要讲,是因为百川的登录有区别于其他第三方通讯平台。之前有用过容联云sdk,他们的登录只要账号密码都不为空就直接帮你注册登录。但是百川,做得比较严谨。如下图: 
这里写图片描述
简单说下: 服务器需要同步用户资料(账号密码)到百川服务器,百川再经过编码处理返回给服务器,服务器再返回客户端,客户端再进行登录动作。

3、关于退出 
这里写图片描述

4、关于会话列表 
百川支持自定义会话列表,但是本身也提供会话列表视图控制器。但是这个会话列表有点局限性,官网上面的文档是提供这样的方式显示会话列表的。如下图

这里写图片描述

会话列表建议做界面跳转,以push或者present的形式。这个方法是获取会话列表视图控制器。会话列表本身携带侧滑删除单个会话。正常的用户体验是,会话列表和联系人在同一个界面内,底部是个滑动视图,titleview是个分组控件,左右切换联系人和会话列表。那问题来了,有没有办法不做界面跳转呢?官网和论坛上都没给出具体的解决方法。问了客服,得到的答案是要保证viewWillAppear、viewDidAppear等方法都要调用到。最后, 
只需要一行代码就能搞定 
这里写图片描述
这张截图有两行比较有用的代码: 
(1)[self addChildViewController:chatListVC]; 
(2)chatListVC.viewForNoData = _viewPromt;

第一行,无非就是得到上面说的那种效果,会话列表不做界面切换,直接添加在滑动视图上即可。但是要保证你得到的chatListVC不被释放 
第二行,当你没有会话数据或者你在会话列表侧滑删除你的会话数据到为空的时候,没有数据的提示视图。只需要定制提示视图,赋值给chatListVC.viewForNoData 即可。

5、关于会话界面(这里主要关于定制类似访问相机、相册发送图片的功能版item) 
这里需要说名的东西不多,主要就是如何跨站聊天、消息未读数制作tabbaritem徽章、功能面板(类似QQ点击”+”弹出来的面板) 
5.1 跨站聊天。 集中在点击联系人列表(自定义)和点击会话列表这两个地方。其实,是同一个地方。

这里写图片描述

初始化YWPerson 对象的时候,要知道这个用户是哪个appkey对应下注册的用户。

5.2 消息未读数。用于制作徽章。 
首先要在监听新消息的方法里面获取整个会话的消息未读数。当然,当你点击会话列表或者点击自定义联系人列表进去单聊界面的时候,无论有没有连天记录,都要将该会话标记成已读。如下

这里写图片描述

然后在监听新消息的方法里面获取所有会话的消息未读数,发送通知给tabbarController,如下图

这里写图片描述

设置徽章(这里要注意下: 当用户退出IM的时候,也要将工程徽章清空) 
这里写图片描述

5.3 工程面板 
主要集中在这两个实体类里面(这里不说细节的东西,因为比较简单) 
这里写图片描述

四、关于推送 
百川的推送跟极光推送有点相似,也是要把推送证书传到它的平台上。对于百川,不支持开发界面的推送测试,只支持发布环境下的推送。 
http://baichuan.taobao.com/doc2/detail.htm?spm=0.0.0.0.cjdXFt&treeId=41&articleId=103420&docType=1

五、关于发布app注意事项 
工程搜索plist文件,找到百川sdk里的plist文件 
这里写图片描述 
5.1 删除这个plist文件里面的Executable file属性 
5.2 修改Bundle versions string, short和Bundle version和Bundle identifier这三个属性值,与项目的plist保持一致。

百川文档地址: http://baichuan.taobao.com/doc2/detail.htm?spm=0.0.0.0.cjdXFt&treeId=41&articleId=103420&docType=1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值