差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
cs:300visitoraccess:iosagentsdk [2017/11/20 03:03] fanxn |
cs:300visitoraccess:iosagentsdk [2017/11/20 06:53] fanxn [添加SDK监听] |
||
---|---|---|---|
行 19: | 行 19: | ||
* [[#添加消息监听|消息监听]] | * [[#添加消息监听|消息监听]] | ||
- | === SDK介绍 === | + | ==== SDK介绍 ==== |
1、文件介绍:依赖库包括HyphenateLite.framework和AgentSDK.framework两个framework,二者缺一不可。 | 1、文件介绍:依赖库包括HyphenateLite.framework和AgentSDK.framework两个framework,二者缺一不可。 | ||
- | === 准备工作 === | + | ==== 准备工作 ==== |
1、工程中导入 HyphenateLite.framework和AgentSDK.framework 【勾选 Copy items if needed 和 Create groups】。\\ | 1、工程中导入 HyphenateLite.framework和AgentSDK.framework 【勾选 Copy items if needed 和 Create groups】。\\ | ||
2、选中当前的TARGET,向General -> Embedded Binaries 中添加以上两个依赖库.Linked Frameworks and Libraries 中会自动增加。\\ | 2、选中当前的TARGET,向General -> Embedded Binaries 中添加以上两个依赖库.Linked Frameworks and Libraries 中会自动增加。\\ | ||
行 35: | 行 35: | ||
#endif | #endif | ||
</code> | </code> | ||
- | === 上传AppStore注意事项 === | + | ==== 上传AppStore注意事项 ==== |
- | 为了方便广大开发者开发测试,Demo中提供的二进制文件支持x86_64 armv7 arm64等平台,上传AppStore需要剔除不需要的CPU架构支持,只剩余armv7、arm64 | + | 为了方便广大开发者开发测试,framework中提供的二进制文件支持x86_64 armv7 arm64等平台,上传AppStore需要剔除不需要的CPU架构支持,只剩余armv7、arm64 |
平台即可,命令如下: | 平台即可,命令如下: | ||
- | lipo .../AgentSDK -remove x86_64 -output .../AgentSDK //剔除x86_64 | + | <code> |
- | 剔除后可用lipo -info .../AgentSDK 查看是否成功剥离 | + | 【首先进入AgentSDK.framework所在的目录】 |
- | === 集成离线推送 === | + | //移除二进制文件的x86_64支持 |
+ | lipo AgentSDK.framework/AgentSDK -remove x86_64 -output AgentSDK //剔除x86_64 | ||
+ | //替换framework内部二进制文件【记得备份】 | ||
+ | mv AgentSDK AgentSDK.framework/AgentSDK | ||
+ | //查看剥离后二进制文件支持的CPU架构,如果现实armv7 arm64 ,则完成剥离 | ||
+ | lipo -info AgentSDK.framework/AgentSDK | ||
+ | </code> | ||
+ | <code> | ||
+ | 【首先进入HyphenateLite.framework所在目录】 | ||
+ | // 移除二进制文件的x86_64支持 | ||
+ | lipo HyphenateLite.framework/HyphenateLite -remove x86_64 -output HyphenateLite | ||
+ | //替换framework内部二进制文件【记得备份】 | ||
+ | mv HyphenateLite HyphenateLite.framework/HyphenateLite | ||
+ | //查看剥离后的二进制文件支持的CPU架构,如果显示armv7 arm64,就完成剥离 | ||
+ | lipo -info HyphenateLite.framework/HyphenateLite | ||
+ | </code> | ||
+ | ==== 集成离线推送 ==== | ||
<code> | <code> | ||
- (void)registerRemoteNotification { //注册离线推送 | - (void)registerRemoteNotification { //注册离线推送 | ||
行 59: | 行 75: | ||
} | } | ||
</code> | </code> | ||
- | === 初始化 === | + | ** APNs注册失败,一般是由于使用了通用证书或者是模拟器调试导致,请检查证书并用真机调试。此处是 iOS 系统报的错,如仍不能确定,请从网上查找相关资料。** |
+ | ==== 初始化 ==== | ||
在didFinishLaunchingWithOptions中调用初始化方法: | 在didFinishLaunchingWithOptions中调用初始化方法: | ||
<code> | <code> | ||
行 67: | 行 84: | ||
[[HDClient sharedClient] initializeSDKWithOptions:option]; | [[HDClient sharedClient] initializeSDKWithOptions:option]; | ||
</code> | </code> | ||
- | === 登录 === | + | ==== 登录 ==== |
<code> | <code> | ||
//传入username、password以及是否隐身登录 | //传入username、password以及是否隐身登录 | ||
行 78: | 行 95: | ||
}]; | }]; | ||
</code> | </code> | ||
- | === 退出方法 === | + | ==== 退出方法 ==== |
<code> | <code> | ||
[[HDClient sharedClient] logoutCompletion:^(HDError *error) { | [[HDClient sharedClient] logoutCompletion:^(HDError *error) { | ||
行 88: | 行 105: | ||
}]; | }]; | ||
</code> | </code> | ||
- | === 判断是否已经登录 === | + | ==== 判断是否已经登录 ==== |
<code> | <code> | ||
[HDClient sharedClient].isLoggedInBefore //BOOL 类型,YES是,NO | [HDClient sharedClient].isLoggedInBefore //BOOL 类型,YES是,NO | ||
</code> | </code> | ||
- | === 添加SDK监听 === | + | ==== 添加SDK监听 ==== |
<code> | <code> | ||
//添加SDK监控,第二个参数是执行代理方法的队列,暂为主队列 | //添加SDK监控,第二个参数是执行代理方法的队列,暂为主队列 | ||
行 98: | 行 115: | ||
//移除SDK监控 | //移除SDK监控 | ||
[[HChatClient sharedClient] removeDelegate:self]; | [[HChatClient sharedClient] removeDelegate:self]; | ||
+ | |||
/* | /* | ||
- | * 当前账号被迫下线,需要重新登录 | + | * SDK连接服务器的状态变化时会接收到该回调 |
+ | * | ||
+ | * 以下情况, 会调用该方法: | ||
+ | * 1. 登录成功后, 手机无法上网时, 会调用该回调 | ||
+ | * 2. 登录成功后, 网络状态变化时, 会调用该回调 | ||
*/ | */ | ||
- | - (void)userAccountNeedRelogin; | + | - (void)connectionStateDidChange:(HDConnectionState)aConnectionState; |
+ | |||
+ | /** | ||
+ | 管理员是否允许客服自定义最大接待人数 | ||
+ | |||
+ | @param allow YES NO 分别表示允许、不允许 | ||
+ | */ | ||
+ | - (void)allowAgentChangeMaxSessions:(BOOL)allow; | ||
+ | |||
+ | /** | ||
+ | 当前账号被迫下线,需要重新登录 | ||
+ | |||
+ | @param reason 下线原因 | ||
+ | */ | ||
+ | - (void)userAccountNeedRelogin:(HDAutoLogoutReason)reason; | ||
/* | /* | ||
* 会话被管理员转接 | * 会话被管理员转接 | ||
- | * @param serviceSessionId 被转接的会话ID | + | * @param sessionId 被转接的会话ID |
*/ | */ | ||
- | - (void)conversationTransferedByAdminWithServiceSessionId:(NSString *)serviceSessionId; | + | |
+ | - (void)conversationTransferedByAdminWithServiceSessionId:(NSString *)sessionId; | ||
/* | /* | ||
* 会话被管理员关闭 | * 会话被管理员关闭 | ||
- | * @param serviceSessionId 被关闭的会话ID | + | * @param sessionId 被关闭的会话ID |
*/ | */ | ||
- | - (void)conversationClosedByAdminWithServiceSessionId:(NSString *)serviceSessionId; | + | |
+ | - (void)conversationClosedByAdminWithServiceSessionId:(NSString *)sessionId; | ||
/* | /* | ||
* 会话自动关闭 | * 会话自动关闭 | ||
- | * @param serviceSessionId 关闭的会话ID | + | * @param sessionId 关闭的会话ID |
*/ | */ | ||
- | - (void)conversationAutoClosedWithServiceSessionId:(NSString *)serviceSessionId; | + | - (void)conversationAutoClosedWithServiceSessionId:(NSString *)sessionId; |
/* | /* | ||
* 会话最后一条消息变化 | * 会话最后一条消息变化 | ||
行 122: | 行 164: | ||
*/ | */ | ||
- (void)conversationLastMessageChanged:(MessageModel *)message; | - (void)conversationLastMessageChanged:(MessageModel *)message; | ||
+ | |||
/* | /* | ||
* 新会话 | * 新会话 | ||
行 127: | 行 170: | ||
*/ | */ | ||
- (void)newConversationWithSessionId:(NSString *)sessionId; | - (void)newConversationWithSessionId:(NSString *)sessionId; | ||
+ | |||
+ | /** | ||
+ | 有新转接会话请求接收 | ||
+ | |||
+ | @param parameters sessionId,用于接受调度 | ||
+ | */ | ||
+ | - (void)transferScheduleRequest:(NSString *)sessionId; | ||
+ | |||
+ | /** | ||
+ | 会话被确认转接【需要管理员开启“转接会话需要对方确认”】 | ||
+ | */ | ||
+ | - (void)transferScheduleAccept:(NSString *)sessionId; | ||
+ | |||
+ | /** | ||
+ | 会话被拒绝转接 | ||
+ | |||
+ | @param sessionId sessionId | ||
+ | */ | ||
+ | - (void)transferScheduleRefuse:(NSString *)sessionId; | ||
+ | |||
/* | /* | ||
* 客服身份发生变化 | * 客服身份发生变化 | ||
*/ | */ | ||
- (void)roleChange:(RolesChangeType)type; | - (void)roleChange:(RolesChangeType)type; | ||
+ | |||
+ | /* | ||
+ | * 待接入列表变化 | ||
+ | */ | ||
+ | - (void)waitListChange; | ||
+ | |||
+ | /* | ||
+ | * 客服列表发生变化 | ||
+ | */ | ||
+ | - (void)agentUsersListChange; | ||
+ | |||
+ | /* | ||
+ | * 通知中心有有变化 | ||
+ | */ | ||
+ | - (void)notificationChange; | ||
</code> | </code> | ||
- | === 添加消息监听 === | + | ==== 添加消息监听 ==== |
<code> | <code> | ||
//添加消息监听 | //添加消息监听 | ||
行 138: | 行 216: | ||
//移除消息监听 | //移除消息监听 | ||
[[HDClient sharedClient].chatManager removeDelegate:self]; | [[HDClient sharedClient].chatManager removeDelegate:self]; | ||
+ | |||
/* | /* | ||
* 收到新消息 | * 收到新消息 | ||
* | * | ||
- | * @param aMessages 消息列表<MessageModel> | + | * @param aMessages 消息列表<HDMessage *> |
*/ | */ | ||
- | - (void)messagesDidReceive:(NSArray <MessageModel *> *)aMessages; | + | - (void)messagesDidReceive:(NSArray <HDMessage *> *)aMessages; |
</code> | </code> |