iOS集成环信客服

    这两天集成环信移动客服,卡在了没有设置发送对象,这个他在文档里也没有写,因此贴出来记录一下。


    首先第一步就是sdk集成和环境配置了,这个看文档就好,小白操作了:

   文档地址:http://docs.easemob.com/im/300iosclientintegration/20iossdkimport

    

    第二步注册开发者账号,关联相关的appkey,这部分文档也写得很清楚,照他写的做基本是不会错的 

    文档地址:http://docs.easemob.com/cs/300visitoraccess/10nativeapp


    第三步集成单聊界面,将sdk里面的ChatView、EaseUI、EaseUIResource.bundle、HyphenateSDK(我集成的是3.x)、Resource、emotion(兔斯基的表情包)等文件拖进去,不过他sdk里面有些文件有重名,所以需要跟着视频一起集成,视频可以看最新的那个,包含2.x到3.x等版本的集成,懒惰的人也可以直接拿我的demo使用就好。

    视频地址:http://www.imgeek.org/video/

   

    然后说说集成文件里面的chatView,这个文件夹里面有一个chatViewController,这个就是单聊界面,你只要在你需要跳转的地方用代码push过去就可以了,但是push前需要传递相关im账户,也就是你关联appkey时所使用的im账户(接收你发送消息的对象),代码如下: 


    // 参数一:对应的im账户,若是群聊则改为组id

    // 参数二:聊天类型(个人和组)

    ChatViewController *chatVC = [[ChatViewControlleralloc]initWithConversationChatter:@"alen"conversationType:EMConversationTypeChat];

    chatVC.title =@"客服中心";

    [self.navigationController pushViewController:chatVCanimated:YES];


   你也可以在chatViewController里面设置更改聊天气泡,图片之类的,就在方法

viewDidLoad里面的那几个appearance属性


   然后关于拓展消息这部分,扩展消息可以发送用户配置信息,诸如手机位置等信息,他的调用被放置于EaseMessageViewController类里面,调用方法如下

 - (void)sendTextMessage:(NSString *)text

   可以在该方法内抒写拓展信息ext,拓展信息为字典写法,示例如下:

- (void)sendTextMessage:(NSString *)text

{

    

    NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

    

    NSString *phone = [user objectForKey:@"userId"] == nil? @"":[user objectForKey:@"userId"];

    NSString *trueName = [user objectForKey:@"realName"] == nil? @"":[user objectForKey:@"realName"];

    NSString *address = [user objectForKey:@"address"] == nil? @"":[user objectForKey:@"address"];

   

    NSDictionary *ext =@{

                                  @"weichat":@{

                                          @"visitor":@{

                                                  @"trueName":trueName,

                                                  @"description":address,

                                                  @"phone":phone

                                                  }

                                          }


                          };


        [self sendTextMessage:text withExt:ext];

}


   大致的集成就是这样了,然后一般放到项目里的话肯定会报很多莫名奇妙的错误,比如我的项目是用cordova框架进行h5与ios混编,居然报了一个block的语法错误,通篇置换才没事.

   还有一个duplicate symbol的错误,这个也很经常出现,错误发生在引用库的问题上,一般是我上面提到的EaseUI文件里面的lib文件夹,里面会有两个.a文件,删掉一个就好,这个在视频里面会讲,如果还报错误的话,就是第三方库的问题了,我的做法是直接删掉换了一个类似的,其中有个我们比较常用的 MJRefresh,这个库他本身就添加引用了,版本较老,因此我的做法是直接把自己添加的给删掉了,用它的就好。


   下面放上demo地址,环信的集成体积比较大,不过后期打包软件后会自动缩水:

   http://download.csdn.net/detail/alenczf/9497203

你可能感兴趣的:(第三方sdk)