最近项目需要集成环信移动客服,把遇到的坑给记下。这里集成的是的客服访客端(不带实时语音),废话不多说,开搞开搞。
1.注册登录环信移动客服账号:https://kefu.easemob.com/mo/login
2.进入管理员模式-->渠道管理-->手机APP-->添加关联APP-->快速关联
3.获取Appkey、IM服务号及租户ID
关联成功如图,红色圈中的是我们会用到的
租户ID获取:
管理理员模式 --> 设置 --> 企业信息”页面的“租户ID”
4.下载客户访客端SDK
http://www.easemob.com/download/cs
5.带实时语音和不带的二选一 把不要的删掉
6.删掉HelpDeskUI里已经有的第三方库
如果你项目里已经导入这些库,就需要把这里的删掉 不然编译会报错
7.然后就把BaseFramework、HelpDeskFramework、HelpDeskUI这仨文件夹拖到项目里面。在他那个demo里找到SCLoginManager.h和.m 拖到我们的项目里
8.在pch里定义宏。
#ifdef __OBJC__
#import <HelpDeskLite/HelpDeskLite.h>
#import "HelpDeskUI.h"
#import "SCLoginManager.h"
#define kDefaultAppKey @"XXX" //APPKEY
#define kDefaultTenantId @"" //租户ID
没填的就自定义了
#define kDefaultCustomerName @""
#define kDefaultCustomerNickname @""
#define kCustomerName @""
#define kCustomerNickname @""
#define kDefaultProjectId @""
#define kAppKey @"KF_appkey"
#define kCustomerTenantId @"KF_tenantId"
#define kCustomerProjectId @"KF_projectId"
#define hxPassWord @"123456"
#endif
9.官方文档隐藏属性来了
项目名-->TARGETS-->Build Phases
查看项目是否有Embed Frameworks这个条目,没有就加上,并引入环信的库。引入完成,就可以编译了。一般就没啥问题,如果有问题就去谷歌吧,有问题我也不知道。
9.APPdelegate初始化
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
HOptions *option = [[HOptions alloc] init];
option.appkey = @"appkey"; // 必填项,appkey获取地址:kefu.easemob.com,“管理员模式 > 渠道管理 > 手机APP”页面的关联的“AppKey”
option.tenantId = @"租户ID";// 必填项,tenantId获取地址:kefu.easemob.com,“管理员模式 > 设置 > 企业信息”页面的“租户ID”
//推送证书名字
// option.apnsCertName = @"your apnsCerName";//(集成离线推送必填)
//Kefu SDK 初始化,初始化失败后将不能使用Kefu SDK
HError *initError = [[HChatClient sharedClient] initializeSDKWithOptions:option];
if (initError) { // 初始化错误
NSLog(@"初始化错误");
}
}
10.在你需要跳转客服方法的添加
HError *error = [[HChatClient sharedClient] registerWithUsername:@"这里填注册用户名" password:@"这里填密码"];
HChatClient *client = [HChatClient sharedClient];
if (client.isLoggedInBefore != YES) {
HError *error = [client loginWithUsername:@"这里填注册用户名" password:@"这里填密码"];
if (!error) { //登录成功
NSLog(@"登录成功");
[self customerService];
} else { //登录失败
NSLog(@"登录失败");
return;
}
}else{
[self hiddenHUD];
[self customerService];
}
11.跳转方法
-(void)customerService{
// 进入会话页面
HDMessageViewController *chatVC = [[HDMessageViewController alloc] initWithConversationChatter:@"这里填IM服务号"];
chatVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:chatVC animated:YES];
}
11.然后就基本完成咯
12.上传App Store注意事项
【首先进入HelpDeskLite.framework所在目录】
// 移除支持x86_64的二进制文件
lipo HelpDeskLite.framework/HelpDeskLite -remove x86_64 -output HelpDeskLite
//替换framwork内部二进制文件[记得备份]
mv HelpDeskLite HelpDeskLite.framework/HelpDeskLite
//查看合并后的二进制文件支持的CPU架构,如果显示armv7 arm64,就完成剥离,可上传AppStore
lipo -info HelpDeskLite.framework/HelpDeskLite