阿里百川IIMSDK-- 加好友,获取好友
加好友, 其实就是跟发消息一样
获取好友列表
同步好友列表
SDK内部默认会在每次登陆成功后与服务端同步好友列表,开发者可以通过设置disableAutoRequestAllContacts
来禁用这个特性,也可以通过
1
|
- ( void )requestAllContactsFromServerWithResultBlock:(YWContactsOperationResultBlock)resultBlock; |
来主动发起同步请求。
怎么调用呢?
获取本地好友
开发者可以通过
1
2
3
4
5
6
|
/// 获取不同排序和分组模式的FRC对象 - (YWFetchedResultsController *)fetchedResultsControllerWithListMode:(YWContactListMode)aMode imCore:(YWIMCore *)imCore; /// 使用关键字搜索用户,使用用户名 // 如果希望搜索好友,needIsFriend置为YES,否则可以置为NO - (YWFetchedResultsController *)fetchedResultsControllerWithSearchKeyword:(NSString *)aKeyword needIsFriend:(BOOL)needIsFriend imCore:(YWIMCore *)imCore; |
来获取本地好友。
for example:
YWIMCore *imcore = [SPKitExample sharedInstance].ywIMKit.IMCore;
_fetchedResultsController = [[imcore getContactService] fetchedResultsControllerWithListMode:YWContactListModeAlphabetic imCore:imcore];
好友操作
好友添加
可以通过以下方式来发起添加好友请求:
1
2
3
4
5
6
7
8
9
10
11
|
[[self.imkit.IMCore getContactService] addContact:person withIntroduction:@ "" withResultBlock:^(NSError *error, YWAddContactRequestResult result) { NSString *title = nil; if (result == YWAddContactRequestResultError) { title = @ "请求发送失败" ; } else if (result == YWAddContactRequestResultSuccess) { title = @ "好友添加成功" ; } else { title = @ "请求发送成功,等待对方验证" ; } [YWIndicator showTopToastTitle:title content:[NSString stringWithFormat:@ "添加%@" , person.personId] userInfo:nil withTimeToDisplay: 1.5 andClickBlock:nil]; }]; |
被添加方可以使用:
1
2
|
- ( void )addAddContactRequestBlockV2:( void (^)(YWPerson *person, YWContactAddRequestType type, BOOL isOffline, NSString *message))block forKey:(NSString *)key ofPriority:(YWBlockPriority)priority; |
来监听被添加的请求,也可以通过
1
|
- (YWConversation *)fetchContactSystemConversation; |
来获取好友请求列表。
对于被添加的请求,可以使用:
1
2
3
|
- ( void )responseToAddContact:(BOOL)accept fromPerson:(YWPerson *)person withMessage:(NSString*)message andResultBlock:(YWAddContactResultBlock)resultBlock; |
这个接口接受或者拒绝。
当被添加方处理后,添加发起方可以通过:
1
2
|
- ( void )addAddContactResponseBlockV2:( void (^)(YWPerson *person, YWContactAddResponseType type, BOOL isOffline, NSString *message))block forKey:(NSString *)key ofPriority:(YWBlockPriority)priority; |
来获得对方处理的结果。
注:以上add开头添加的block均需要在不使用的时候调用对应的remove方法。
删除好友
开发者可以通过
1
|
- ( void )removeContact:(YWPerson *)persons withResultBlock:(YWRemoveContactResultBlock)resultBlock; |
来删除好友,通过
1
2
|
- ( void )addFriendBeRemovedBlock:( void (^)(YWPerson *person, BOOL isOffline))block forKey:(NSString *)key ofPriority:(YWBlockPriority)priority; |
来接收被删除的回调。
修改好友的备注名
开发者可以通过
1
|
- ( void )modifyContact:(YWPerson *)person WithNewNick:(NSString *)nickName andResultBlock:(YWContactOperationResultBlock)resultBlock; |
来修改好友的备注名,通过
1
|
- (NSString *)contactNickOfPerson:(YWPerson *)aPerson; |
来获取好友的备注名。
查询person是否为好友
1
|
- (BOOL)ifPersonIsFriend:(YWPerson *)person; |
getContactService
还有
/**
* 获取长连接服务
*/
- (id<IYWLoginService>)getLoginService; /**
* 获取会话相关服务
*/
- (id<IYWConversationService>)getConversationService; /**
* 获取扩展服务
*/
- (id<IYWExtensionService>)getExtensionService; /**
* 群相关服务
*/
- (id<IYWTribeService>)getTribeService; /**
* 漫游相关服务
*/
- (id<IYWRoamingService>)getRoamingService; /**
* 联系人相关服务(建立好友关系的人,称为联系人)
*/
- (id<IYWContactService>)getContactService; /**
* 缓存相关服务,在imcore登陆前返回nil。
* 这里的缓存与imcore相关,跟[YWAPI getGlobalUtilService4Cache]全局缓存的数据不能相互访问
*/
- (id<IYWUtilService4Cache>)getCacheService; /**
* 各种设置项
*/
- (id<IYWSettingService>)getSettingService; /**
* 获取action相关服务
*/
- (id<IYWActionService>)getActionService; /**
* 获取EHelper服务
*/
- (id<IYWEHelperService>)getEHelperService;
阿里百川IIMSDK-- 加好友,获取好友的更多相关文章
- XMPP系列(三)---获取好友列表、添加好友
1.心跳检测.掉线重连功能 客户端和服务器端都可以设置多久发送一次心跳包,如果对方没有返回正确的pong信息,则会断开连接,而添加掉线重连功能,则会自动进行连接. 如果自己写聊天功能还得自己做心跳检测 ...
- Python3 itchat微信获取好友、公众号、群聊的基础信息
Python3 itchat微信获取好友.公众号.群聊的基础信息 一.简介 安装 itchat pip install itchat 使用个人微信的过程当中主要有三种账号需要获取,分别为: 好友 公众 ...
- XMPP系列(三)---获取好友列表、加入好友
1.心跳检測.掉线重连功能 client和server端都能够设置多久发送一次心跳包,假设对方没有返回正确的pong信息,则会断开连接,而加入掉线重连功能,则会自己主动进行连接. 假设自己写聊天功能还 ...
- XMPP框架下微信项目总结(5)花名册获取(好友列表)
---->概念 ---->添加花名册 ps:添加花名册,启动: 客户端发送请求到服务器获取好友列表信息,同时在项目中创建数据表,并保存好友列表到数据表中. ---->获取服务器保存好 ...
- 一步一步来做WebQQ机器人-(四)(获取好友列表和群列表)
× 本篇主要是: 获取好友列表,群列表 我会尽量详细一点,尽我所知的分享一些可能大家已经掌握的或者还不清楚的经验 利于大家阅读,文章样式不再复杂化,根据内容取固定色 目前总进度大概65% 全系列预计会 ...
- XMPP通讯开发-好友获取界面设计
在XMPP通讯开发-服务器连接 中我们成功连接到服务器上面,然后进入到主界面,接下来就是获取好友列表,这里我们分段开发,首先就是界面的设计,这里仿照QQ好友界面,里面的数据先是用模拟的,下一章获取服务 ...
- XMPP通讯开发-服务器好友获取以及监听状态变化
在 XMPP通讯开发-好友获取界面设计 我们设计了放QQ的列表功能,这里我们获取我们服务器上的 数据. 这一部分知识我们可以查看smack_3_3_0/smack_3_3_0/documentat ...
- web qq 获取好友列表hash算法
web qq 获取好友列表hash算法 在使用web qq的接口进行好友列表获取的时候,需要post一个参数:hash 在对其js文件进行分析之后,发现计算hash的函数位于: http://0.we ...
- xmpp获取好友信息和添加删除好友(4)
原始地址: XMPPFrameWork IOS 开发(五)获取好友信息和添加删除好友 好友列表和好友名片 [_xmppRoster fetchRoster];//获取好友列表 //获取到一个好友节点 ...
随机推荐
- 初探Team Foundation Server (TFS) 2015 REST API
REST是一种简洁方便的Web服务,通过基于http协议的远程通信,可以为多种客户端程序提供远程服务,大幅提高了服务器系统的可扩展性. 微软宣布从Team Foundation Server 从201 ...
- 《TCP/IP详解 卷一》读书笔记-----第三章 IP
1.Network byte order:数据在网络中的传输是按照大端模式来的,即如果需要传递一个四个字节的int变量,先传递最高的字节,然后依次类推.因此无论主机存储数据用的是大端模式还是小端模式, ...
- 【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏
既然 Fragment 取代了TabActivity,当然 TabActivity 的能实现的菜单栏,Fragment 当然也能实现.主要其实就是通过菜单栏的点击事件切换 Fragment 的显示和隐 ...
- WinCE应用程序崩溃提示框的处理
WinCE的开发人员和WinCE设备的用户应该对下面这两个错误不陌生,"Application encountered a serious error and must shut down& ...
- pace.js – 加载进度条插件
这儿只是简单介绍一下这个插件pace.js. 在页面中引入Pace.js,页面就会自动监测你的请求(包括Ajax请求),在事件循环滞后,会在页面记录加载的状态以及进度情况.此插件的兼容性很好,可以兼容 ...
- a 标签中调用js的几种方法
我们常用的在a标签中有点击事件: 1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问 ...
- 第11章 Windows线程池(2)_Win2008及以上的新线程池
11.2 Win2008以上的新线程池 (1)传统线程池的优缺点: ①传统Windows线程池调用简单,使用方便(有时只需调用一个API即可) ②这种简单也带来负面问题,如接口过于简单,无法更多去控制 ...
- java 19 -14 File类的判断并输出案例
package zl_file; import java.io.File; import java.io.FilenameFilter; /* 需求: 判断E盘目录下是否有后缀名为.jpg的文件,如果 ...
- Maya FEM节点框架完成
这几天把物理模拟框架移植到maya之中了. maya编程有一点比较关键,就是要让自己的程序逻辑适应maya的节点求值机制.在物理模拟中,往往需要进行时间积分,对此我的解决办法是,写一个节点rigSim ...
- kprobe原理解析(一)
kprobe是linux内核的一个重要特性,是一个轻量级的内核调试工具,同时它又是其他一些更高级的内核调试工具(比如perf和systemtap)的“基础设施”,4.0版本的内核中,强大的eBPF特性 ...