GoBelieve IOS SDK接入备忘
项目配置
- 在工程target的"Build Settings"中,找到"Linking"的"Other Linker Flags",添加参数
-ObjC
。
IMSDK
- imsdk只包含消息基础通讯功能
初始化IM
启动im服务只需要设置用户的access token,调用启动接口并添加消息的监听对象。
[IMService instance].deviceID = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; [[IMService instance] startRechabilityNotifier];
用户登录成功后启动IM,设置用户的accesstoken并启动im
[IMHttpAPI instance].accessToken = accessToken;
[IMService instance].accessToken = accessToken;
[[IMService instance] start];
用户注销后清空用户的devicetoken并停止IM
[IMHttpAPI unbindDeviceToken];
[IMService instance].accessToken = @""
[[IMService instance] stop];
应用切到后台暂停IM,此后所有的消息将通过推送通道下发
[[IMService instance] enterBackground];
应用切到前台恢复IM
[[IMService instance] enterForeground];
发送消息
启动IM服务设置好用户id之后便可以开始发送消息,消息发送的代码需要在UI线程中调用(消息内容大小限制为4k) :
IMMessage *im = [[IMMessage alloc] init];
//设置发送方id
im.sender = sender;
//设置接收方id
im.receiver = receiver;
//消息本地id
im.msgLocalID = msgLocalID;
im.content = "消息内容";
[[IMService instance] sendPeerMessage:im];
类IMService
设置当前用户的access token
属性名:String accessToken
功能:在调用start之前必须要设置用户的accessToken,token是由第三方应用服务器调用IM服务器RestAPI所得。
设置当前设备的id
属性名:String deviceID
功能:设备id可以用户多点登陆的唯一性判断,可选调用
设置观察者
方法名: -(void) addMessageObserver:(id<IMServiceObserver>)observer
功能:设置observer,在observer中处理接受到的消息。
参数说明:
* observer 观察者
返回值:无返回值
开始接受消息
方法名:-(void) start
功能:用户登陆成功后,连接im服务器来接受在线消息。
停止接受消息
方法名:-(void) stop
功能:用户注销后,断开和im服务器的连接,从而终止接受在线消息。
应用进入到前台
方法名:-(void) enterForeground
功能:应用进入前台,im服务器将停止将消息推送到通知栏
应用进入到后台
方法名:-(void) enterBackground
功能:应用进入后台,im服务器会将将消息推送到通知栏
发送消息
方法名: -(BOOL) sendPeerMessage:(IMMessage*)msg
功能:发送im消息,如果当前连接处于断开状态,消息会发送失败, 函数返回YES,也不能表明服务器已经接收到消息。
参数说明:
*msg 消息对象
返回值:BOOL
接口IMServiceObserver
连接状态
方法名:-(void) onConnectState:(int)state
功能:连接状态变更通知
参数说明:
*state 连接的状态 STATE_UNCONNECTED, STATE_CONNECTING, STATE_CONNECTED, STATE_CONNECTFAIL
返回值:无返回值
异地登陆
方法名: -(void) onLoginPoint:(LoginPoint*)lp
功能:当前登陆用户在异地登陆
参数说明:
*lp 登录点信息
返回值:无返回值
消息
方法名:-(void) onPeerMessage:(IMMessage*)msg
功能:接受到一条im消息
参数说明:
*msg 消息对象
返回值:无返回值
消息ACK
方法名:-(void) onPeerMessageACK:(int)msgLocalID uid:(int64_t)uid
功能:服务器对收到消息的ack,此时这条消息才能标志为发送成功
参数说明:
*msgLocalID 消息的本地ID
*uid 消息接受者
返回值:无返回值
消息接受者ACK
方法名:-(void)onPeerMessageRemoteACK:(int)msgLocalID uid:(int64_t) uid
功能:消息已经被对端接收到。
参数说明:
*msgLocalID 消息的本地ID
*uid 消息接受者
返回值:无返回值
消息发送失败
方法名:-(void) onPeerMessageFailure:(int)msgLocalID uid:(int64_t)uid
功能:消息发出后,未收到服务器的ack,在和服务器的连接断开后,会通知消息发送失败。
参数说明:
*msgLocalID 消息的本地ID
*uid 消息接受者
返回值:无返回值
类IMApi
设置当前用户的device token
方法名:-(BOOL) bindDeviceToken:(NSString*)deviceToken success:(void (^)())success fail:(void (^)())fail
功能:设置device token后,im服务器会对用户推送离线消息
参数说明:
*deviceToken APNS的deviceToken
返回值:boolean 是否设置成功。
清空当前用户关联的device token
方法名:-(BOOL) unbindDeviceToken:(NSString*)deviceToken success:(void (^)())success fail:(void (^)())fail
功能:im服务器不会再对这台设备推送离线消息
参数说明:
*deviceToken APNS的deviceToken
*accessToken 用户当前的accessToken
返回值:boolean 是否清空成功。
IMKit
- 除了imsdk必要的初始化动作外,使用imkit需要初始化存储类
//setDBPath必须要在引用PeerMessageHandler,GroupMessageHandler之前调用
//可以将当前登录的uid加入到路径中,这样不同用户登录的时候,可以保留前一个用户的聊天历史
[MessageDB setDBPath:path];
[IMService instance].peerMessageHandler = [PeerMessageHandler instance];
[IMService instance].groupMessageHandler = [GroupMessageHandler instance];
打开聊天界面
MessageViewController* msgController = [[MessageViewController alloc] init];
msgController.peerUID = peerUID;
msgController.peerName = peerName;
msgController.currentUID = currentUID;
[self.navigationController pushViewController:msgController animated: YES];
GoBelieve IOS SDK接入备忘的更多相关文章
- GoBelieve Android SDK接入备忘
Android SDK版本 目前SDK只支持Android 2.2或以上版本的手机系统. AndroidManifest.xml配置 以下配置可以在IMDemo/AndroidManifest.xml ...
- GoBelieve JS IM SDK接入备忘
类IMService 构造函数 参数说明: * `observer` 回调对象(可选) 设置当前用户的access token 属性名:String accessToken 功能:在调用start之前 ...
- UE4 ios环境搭建备忘
1.windows.mac安装证书 2.安装xcode .app -- 路径可以拖入 sudo gem install xcodeproj 3.错误处理 Setting up Mono Running ...
- iOS 7设计备忘单
With the release of iOS 7, app designers and developers will need to adjust their visual language to ...
- SDK接入(3)之iOS内支付(In-App Purchase)接入
SDK接入(3)之iOS内支付(In-App Purchase)接入 继整理了Android平台的SDK接入过程.再来分享下iOS平台的内支付(In-App Purchase)接入,作为笔者在游戏开发 ...
- iOS第三方开源库的吐槽和备忘(转)
原文:http://www.cocoachina.com/industry/20140123/7746.html 做iOS开发总会接触到一些第三方库,这里整理一下,做一些吐槽. 目前比较活跃的社区 ...
- iOS第三方开源库的吐槽和备忘
转自:http://blog.ibireme.com/2013/09/23/ios-third-party-libs/#more-41361 由 ibireme 发表于 2013/09/23 做iOS ...
- 手机游戏渠道SDK接入工具项目分享(二)万事开头难
一般接到任务后程序员们通常都开始着手进行技术调研了,但我这活是项目负责人.还有一大堆事情要先期准备,没人能帮忙. 一.人力配置 考虑的之前已经有一波人搞了大半年,但没有起色,先期也没有太大人力需求,所 ...
- ios--集成支付宝钱包支付iOS SDK的方法与经验
文/胖花花(简书作者)原文链接:http://www.jianshu.com/p/fe56e122663e著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 没想到,支付宝的SDK是我目前 ...
随机推荐
- 几道web题简单总结
拖了好长时间,总结一下这一段时间做的几道值得记录一下的题目,有的没做出来,但是学习到了新的东西 1.homebrew event loop ddctf的一道题目,学到了python eval函数的用法 ...
- sqlserver 限制用户只能访问指定的视图
项目中有一个需求,要求给其它单位提供数据,我们用到了视图,并要求不能让他们看到数据库中的其它数据,我们为其创建了单独的账号,并只能看到指定视图 一.创建视图 CREATE VIEW [dbo].[v_ ...
- Win2D 官方文章系列翻译 - 预乘 Alpha
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-premultiplied-alpha/ 在计算机绘图中有两种表示颜色值不透明度的方法.Win2D 中两种方法 ...
- 【Spring Cloud】与Spring Boot版本匹配关系
Spring Cloud版本演进情况如下: 版本名称 版本Finchley snapshot版Edgware snapshot版Dalston SR1 当前最新稳定版本Camden SR7 稳定版本B ...
- Python pip windows安装
参考页面: [1] : https://pip.pypa.io/en/latest/installing.html [2] : http://stackoverflow.com/questions/4 ...
- PAT 1064 Complete Binary Search Tree
#include <iostream> #include <cstdio> #include <cstdlib> #include <vector> # ...
- 从零开始的全栈工程师——MySQL数据库( Dos命令 ) ( phpstudy )
MySQL是一个关系型数据库,存在表的概念.结构,数据库可以存放多张表,每个表里可以存放多个字段,每个字段可以存放多个记录. phpstudy使用终端打开数据库的命令行 密码: root 数据库 查看 ...
- 菜鸟学习Spring——SpringMVC注解版在服务器端获取Json字符串并解析
一.概述. SpringMVC在服务端把客户端传过来的JSON字符串,并把JSON字符串转成 JSON对象并取得其中的属性值,这个在项目中经常用到. 二.代码演示. 需要添加的jar包. 2.1 we ...
- Learn by pictures on Computer Fields
- JSTL格式化标签库
导入标签库需要使用taglib指令! <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/forma ...