这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
im_ios_ui组件开发指南 [2016/01/14 01:48] tangbing [5.1、初始化SDK] |
im_ios_ui组件开发指南 [2016/03/18 10:07] liuxia |
||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== IM iOS UIKitSDK简介 ====== | + | ====== 1、IM iOS UIKit SDK简介 ====== |
- | UI界面组件UCSIMKit 是集成云之讯的IM会话列表、聊天界面、邀请好友界面等。可快速集成和高度自定义界面的SDK | + | 云之讯IM UIKit是在原子SDK的基础上封装了IM相关的上层业务和UI,开发者无须处理复杂IM业务及UI,只需启动已封装好的界面就能拥有IM功能。包括:IM会话列表界面、好友列表界面、聊天界面等。 |
- | 在使用 IOS SDK之前,您可以先体验一下相关DEMO能力演示,帮助您快速了解和实现相关的能力 | + | |
====== 2、集成前的准备 ====== | ====== 2、集成前的准备 ====== | ||
- | 成为云之讯平台开发者,并创建后台应用,详细步骤见注册云之讯开发者账号和管理中心使用指南。如果你已经是平台开发者,并且对云之讯平台非常熟悉,那么你可以跳过这一步继续往下看。 | + | 您需要成为云之讯平台的开发者,然后在平台创建应用,详细步骤见注册云之讯开发者账号和管理中心使用指南。如果您已经是平台开发者,并且对云之讯平台非常熟悉,那么您可以跳过这一步继续往下看。 |
- | 使用云之讯UI组件登陆云平台,需要使用token登陆,在实际的开发中,token 一般由开发者自己的服务器下发。如果开发者对token概念不理解,请点击云之讯token。 | + | 使用云之讯UIKIt组件登陆云平台,需要使用到token,token是需要服务器向云平台申请,然后下发给用户登录。 |
======3、下载UIKit组件的SDK ====== | ======3、下载UIKit组件的SDK ====== | ||
- | 如果您还未下载UIKit SDK或者想获取最新的SDK,请点击下载云之讯UIKIT SDK([[http://www.ucpaas.com/product_service/im#item4 |下载地址在页面底部]]) | + | 您想下载云之讯UI组件最新的SDK,请点击UIKIT SDK连接([[http://www.ucpaas.com/product_service/im#item4|下载地址]]) |
=====3.1、SDK目录讲解 ===== | =====3.1、SDK目录讲解 ===== | ||
- | 从官网上下载下来的包中分为如下四部分: | + | 从官网上下载的SDK包含的主要四部分: |
<code java> | <code java> | ||
- | 1、USCIMkit.a UI组件的使用的静态库,是对界面组件的封装包 | + | 1、USCIMkit.a UI组件使用的静态库,界面组件的封装包 |
2、UCSIMKit.bundle: 包含静态库中要使用的图片、语音资源 | 2、UCSIMKit.bundle: 包含静态库中要使用的图片、语音资源 | ||
- | 3、Lib: 包含录音功能相关文件和emoj表情的plist文件 | + | 3、Lib: 包含录音功能相关文件、emoj表情的plist文件、地图坐标信息转换的db文件 |
4、头文件说明: | 4、头文件说明: | ||
- | UCSUIKitManager.h 是SDK的核心类,是一个单例类 | + | UCSUIKitManager.h SDK的核心类,单例类 |
- | ChatListViewController.h 会话列表类 | + | ChatListViewController.h 会话列表类 |
ChatViewController.h 聊天界面类 | ChatViewController.h 聊天界面类 | ||
InfoManager.h 文件的处理类 | InfoManager.h 文件的处理类 | ||
行 23: | 行 23: | ||
MultiSelectViewController.h 选择好友的页面 | MultiSelectViewController.h 选择好友的页面 | ||
SingelChatDeltailViewController.h 单聊设置界面 | SingelChatDeltailViewController.h 单聊设置界面 | ||
+ | BaseViewController SDK的基础视图控制器类 | ||
UCConst.h 通知的枚举类 | UCConst.h 通知的枚举类 | ||
UCSIMDefine.h IM消息相关枚举类 | UCSIMDefine.h IM消息相关枚举类 | ||
UCSUserInfo.h 用户model类 | UCSUserInfo.h 用户model类 | ||
+ | UCSGroupInfo.h 群的model类 | ||
UCSUIKITSDK.h 包含所有的头文件 | UCSUIKITSDK.h 包含所有的头文件 | ||
UCSTcpDefine.h TCP相关枚举类 | UCSTcpDefine.h TCP相关枚举类 | ||
+ | UCSError.h SDK错误类型类 | ||
</code> | </code> | ||
+ | <html> | ||
+ | <span style="color:red;font-size:100%;">注意事项:添加的Lib文件成功的标志是在工程文件中的Copy Bundle Resource配置栏有相应的显示。 | ||
+ | </span> | ||
+ | </html> | ||
+ | |||
======4、SDK配置工程 ====== | ======4、SDK配置工程 ====== | ||
===== 4.1、新建工程 ===== | ===== 4.1、新建工程 ===== | ||
行 34: | 行 42: | ||
{{ :无标题1.png |}} | {{ :无标题1.png |}} | ||
=====4.2、导入UIKIT SDK ===== | =====4.2、导入UIKIT SDK ===== | ||
- | 将下载好的UCSUIKit_SDK_v3.0.0.zip包解压到任意目录。在你的项目中中加入libucsimkit.a和头文件,在你的Resource目录中加入ucsimkitBundel.bundel(资源包),将lib文件夹也拖到工程中。 | + | 将下载好的UCSUIKit_SDK(版本号).zip包解压到任意目录。在您的项目中加入libucsimkit.a、头文件、ucsimkitBundel.bundel(资源包),lib文件夹。 |
- | 生成的效果如图 2 导入UIKit SDK效果图所示: | + | 导入UIKit SDK后工程界面如下图所示: |
- | {{ :8888.jpg.png?nolink |}} | + | {{ :屏幕快照_2016-03-07_下午5.21.44.png |}} |
=====4.3、添加依赖库 ===== | =====4.3、添加依赖库 ===== | ||
- | 你需要添加以下依赖库: | + | 您需要添加以下依赖库: |
<code java> | <code java> | ||
libc++.dylib | libc++.dylib | ||
libstdc++.dylib | libstdc++.dylib | ||
+ | Libz.1.1.3.dylib | ||
+ | Libsqlite3.0.dylib | ||
+ | libicucore.A.dylib | ||
MessageUI.framework | MessageUI.framework | ||
MediaPlayer.framwork | MediaPlayer.framwork | ||
行 56: | 行 66: | ||
AVFoundation.framework | AVFoundation.framework | ||
SystemConfiguration.framework | SystemConfiguration.framework | ||
- | Libz.1.1.3.dylib | ||
- | Libsqlite3.0.dylib | ||
</code> | </code> | ||
- | 生成的效果如下图所示: | + | 生成的界面如下图所示: |
- | {{ :99999.jpg.png?nolink |}} | + | {{ :屏幕快照_2016-01-20_下午2.17.16.png |}} |
- | 注意:在Xcode7以上的编译器上,添加库时找不到以.dylib为后缀的库,将.dylib替换成.tdb就OK了。 | + | <html> |
- | =====4.4、配置编译选项 ===== | + | <span style="color:red;font-size:100%;">注意事项:在Xcode7以上的编译器上,添加库时找不到以.dylib为后缀的库,将.dylib替换成.tdb就OK了。 |
- | 向Targets ->Build Settings -> Linking -> Other Linker Flags 中添加【-ObjC】(注意大小写) | + | </span> |
+ | </html> | ||
- | 在工程的info.plist文件中,增加项 【Required background modes】,将该项的任意一个Item字段的值修改为 【App provides Voice over IP services】如图: | ||
- | {{ :123456789.jpg?nolink |}} | ||
=====4.5、预编译SDK ===== | =====4.5、预编译SDK ===== | ||
- | 新建一个预编译文件,将UIKIT所有头文件引入该文件中,以后使用的时候只需要导入这个头文件就可以了,也可以不进行这一步。 | + | 新建一个预编译文件,将UCSUIKITSDK.h引入预编译文件中。如果工程中已经存在UCSUIKITSDK.h预编译文件,直接将文件导入工程。 |
- | 预编译文件中需要加入以下两句代码: | + | 如果新建预编译文件需要导入下面2个头文件: |
<code java> | <code java> | ||
#import <UIKit/UIKit.h> | #import <UIKit/UIKit.h> | ||
行 77: | 行 84: | ||
====== 5、IOS UIKit SDK快速集成 ====== | ====== 5、IOS UIKit SDK快速集成 ====== | ||
===== 5.1、初始化SDK ===== | ===== 5.1、初始化SDK ===== | ||
- | 给核心单例传送root的控制器(root控制器是你设置管理IM通讯的控制,创建好友成功后跳转的页面) | + | 调用核心单例设置推送的类型 |
- | <code iOS> | + | <code java> |
- | MainVC = [[HomeViewControlleralloc] init]; | + | //通过单例的方法来调用核心类的能力接口 |
- | _nav = [[BaseNavigationViewControlleralloc] initWithRootViewController:_MainVC]; | + | [UCSUIKitManager shareUCSUIKit] |
- | _loginVC = nil; | + | /** |
- | [[UCSUIKitManager shareUCSUIKit] registeNotificationsWithRootController:_nav]; | + | * 设置开发环境 |
+ | * 参数 parameter UCSPushEnvironment 是枚举类型 开发环境和发布环境 | ||
+ | */ | ||
+ | [[UCSUIKitManager shareUCSUIKit]setPushEnvironment:UCSPushEnvironment_Production]; | ||
</code> | </code> | ||
- | ===== 5.2、连接服务器 ===== | + | <html> |
- | 云之讯UIKit SDK的消息收发必须在和平台保持连接的情况下进行(离线推送除外),连接平台代码如下: | + | <span style="color:red;font-size:100%;"> |
+ | - 注意事项: | ||
+ | 首先必须设置deviceToken,模拟器是无法获取devicetoken,也就没有推送功能。 </span> | ||
+ | </html> | ||
+ | |||
+ | <html> | ||
+ | <span style="color:red;font-size:100%;"> | ||
+ | - 当使用"开发/测试环境"的appkey测试推送时,必须用Development的证书打包,并且在后台上传"开发/测试环境"的推送证书,证书必须是development的。 当使用"生产/线上环境"的appkey测试推送时,必须用Distribution的证书打包,并且在后台上传"生产/线上环境"的推送证书,证书必须是distribution的。 </span> | ||
+ | </html> | ||
+ | |||
+ | ===== 5.2、设置推送开发环境 ===== | ||
<code iOS> | <code iOS> | ||
+ | 推送的环境要根据上传的证书的类型来匹配,证书是发布证书,对应设置为发布环境。同理,如果证书是开发型证书,对应设置为开发环境。(证书的类型可以在钥匙串访问中查找) | ||
+ | //设置推送的环境 1为开发 其他为发布 | ||
+ | eg: | ||
+ | [[UCSUIKitManager shareUCSUIKit]setPushEnvironment:UCSPushEnvironment_Develop]; | ||
+ | 在Appdelegate相应的系统方法中,保存推送的Token | ||
+ | - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken | ||
+ | { | ||
+ | NSString *deviceToken1 = [[[[deviceToken description] | ||
+ | stringByReplacingOccurrencesOfString:@"<"withString:@""] | ||
+ | stringByReplacingOccurrencesOfString:@">" withString:@""] | ||
+ | stringByReplacingOccurrencesOfString: @" " withString: @""]; | ||
+ | [[NSUserDefaults standardUserDefaults] setObject:deviceToken1 forKey:@"DeviceToken"]; | ||
+ | [[NSUserDefaults standardUserDefaults] synchronize]; | ||
+ | } | ||
+ | </code> | ||
+ | <html> | ||
+ | <span style="color:red;font-size:100%;"> | ||
+ | 注意事项: | ||
+ | NSUserDefaults设置的DeviceToken的名字一定要是"DeviceToken",这样才能被SDK识别。 </span> | ||
+ | </html> | ||
+ | |||
+ | ===== 5.3、连接服务器 ===== | ||
+ | 云之讯UIKit SDK的消息收发必须在和平台保持连接的情况下进行(离线推送除外),连接平台示例代码如下: | ||
+ | <code java> | ||
+ | /** | ||
+ | * 连接服务器 | ||
+ | @param token 从服务端获取的用户身份令牌(Token)。 | ||
+ | @param successBlock 调用完成的处理。 | ||
+ | @param errorBlock 调用返回的错误信息。 | ||
+ | @param tokenIncorrectBlock token错误或者过期。需要重新换取token,但需要注意避免出现无限循环。 | ||
+ | @return 无 | ||
+ | */ | ||
[[UCSUIKitManager shareUCSUIKit] connectWithToken:im_token success:^(NSString *userId) { | [[UCSUIKitManager shareUCSUIKit] connectWithToken:im_token success:^(NSString *userId) { | ||
[self connectionSuccessful:0]; | [self connectionSuccessful:0]; | ||
行 94: | 行 146: | ||
</code> | </code> | ||
- | ===== 5.3、启动会话列表界面 ===== | + | |
+ | ===== 5.4、启动会话列表界面 ===== | ||
启动会话的主要类是 ChatListViewController | 启动会话的主要类是 ChatListViewController | ||
<code iOS> | <code iOS> | ||
ChatListViewController *chatList = [[ChatListViewControlleralloc]init]; | ChatListViewController *chatList = [[ChatListViewControlleralloc]init]; | ||
- | [chatListsetNavigationTitle:@"会话列表" textColor:[UIColorwhiteColor]]; | ||
[self.navigationControllerpushViewController:chatListanimated:YES]; | [self.navigationControllerpushViewController:chatListanimated:YES]; | ||
</code> | </code> | ||
- | ===== 5.4、启动单聊会话界面 ===== | + | ===== 5.5、启动单聊会话界面 ===== |
启动单聊的主要类是 ChatViewController (在demo中默认一个固定的chatter) | 启动单聊的主要类是 ChatViewController (在demo中默认一个固定的chatter) | ||
<code iOS> | <code iOS> | ||
行 109: | 行 161: | ||
</code> | </code> | ||
- | ===== 5.5、启动邀请好友界面 ===== | + | ===== 5.6、启动邀请好友界面 ===== |
- | 邀请好友的主要类是 MultiSelectViewController (开发者可以自定义联系人,但如果需要聊天,改联系人必须经过云之讯鉴权) | + | 邀请好友的主要类是 MultiSelectViewController (开发者可以自定义联系人,但联系人必须经过云之讯鉴权) |
<code iOS> | <code iOS> | ||
MultiSelectViewController *multiSel= [[MultiSelectViewControlleralloc]initWithType:UCSelectTypeCreatetargetId:[[InfoManagersharedInfoManager]phone ]]; | MultiSelectViewController *multiSel= [[MultiSelectViewControlleralloc]initWithType:UCSelectTypeCreatetargetId:[[InfoManagersharedInfoManager]phone ]]; | ||
+ | [self.navigationController pushViewController:multiSel animated:YES]; | ||
</code> | </code> | ||
- | ===== 5.6、启动网络监控 ===== | + | |
- | <code iOS> | + | ===== 5.8、SDK的其他接口 ===== |
- | [[UCSUIKitManager shareUCSUIKit]watchNetorking]; | + | UIKitSDK还提供了其他的接口,供开发者自由选择搭配。示例代码如下: |
+ | <code java> | ||
+ | /** | ||
+ | 获取所有未读信息的数量 | ||
+ | @return 返回的具体数据 | ||
+ | */ | ||
+ | - (NSInteger)getTotalUnreadCount; | ||
+ | /** | ||
+ | 查询帐号与服务器连接状态 | ||
+ | @return Yes 为是连接状态 NO 离线状态 | ||
+ | */ | ||
+ | - (BOOL)isConnected; | ||
</code> | </code> | ||
- | ======6、显示用户头像和昵称以及好友联系人 ====== | + | ======6、UI的自定义====== |
+ | ===== 6.1、用户头像和昵称以及好友联系人的自定义 ===== | ||
- | 云之讯不维护和管理用户的基本信息(头像 id 、 昵称)的获取、缓存、变更和同步。所有的好友联系人的个人信息(比如昵称、头像)需要用户自己维护,UIKit SDK提供了相应的接口回调用户信息。 | + | 云之讯不维护和管理用户的基本信息(头像 id 、 昵称)的获取、缓存、变更和同步。所有的好友联系人的个人信息(比如昵称、头像)需要开发者自己维护,UIKit SDK提供了相应的接口回调用户信息。 |
设计的原理: | 设计的原理: | ||
+ | 通过UCSUIKitManager的代理设置数据源的参数,然后调用代理方法参数的Block来回调数据,完成SDK从外部数据的获取。 | ||
+ | |||
设置用户的信息是通过代理协议来设置数据源(类似TableView的代理方式),开发者只要实现2个代理就能设置数据源(可参考Demo)。 | 设置用户的信息是通过代理协议来设置数据源(类似TableView的代理方式),开发者只要实现2个代理就能设置数据源(可参考Demo)。 | ||
- | <code iOS> | + | <code java> |
- | /*! | + | /** |
@protocol UCSIMUserInfoFetcherDelegagte | @protocol UCSIMUserInfoFetcherDelegagte | ||
用户信息的获取器。 | 用户信息的获取器。 | ||
- | 如果在聊天中遇到的聊天对象是没有登录过的用户(即没有通过云之讯服务器鉴权过的),IM 是不知道用户信息的,IM 将调用此 Delegagte 获取用户信息。 | + | IM 是不知道用户信息的,IM 将调用此 Delegagte 获取用户信息。 |
*/ | */ | ||
@protocol UCSIMUserInfoFetcherDelegagte <NSObject> | @protocol UCSIMUserInfoFetcherDelegagte <NSObject> | ||
- | /*! | + | /** |
* 获取用户信息。 | * 获取用户信息。 | ||
* @param userId 用户 Id。 | * @param userId 用户 Id。 | ||
行 139: | 行 206: | ||
@end | @end | ||
- | /*! | + | /** |
好友列表的获取器。 | 好友列表的获取器。 | ||
云之讯 本身不保存 App 的好友关系,如果在聊天中需要使用好友关系时(如:需要选择好友加入群聊),UCSIMkit 将调用此 Delegagte 获取好友列表信息。 | 云之讯 本身不保存 App 的好友关系,如果在聊天中需要使用好友关系时(如:需要选择好友加入群聊),UCSIMkit 将调用此 Delegagte 获取好友列表信息。 | ||
*/ | */ | ||
@protocol UCSIMUserInfoDataSource <NSObject> | @protocol UCSIMUserInfoDataSource <NSObject> | ||
- | /*! | + | /** |
获取好友信息列表。 | 获取好友信息列表。 | ||
@return 好友信息列表。 | @return 好友信息列表。 | ||
行 153: | 行 220: | ||
在提供的用户信息的类中实现2个代理,组件的SDK就能获取到用户的信息数据 | 在提供的用户信息的类中实现2个代理,组件的SDK就能获取到用户的信息数据 | ||
getFriend是获取用户的联系人 | getFriend是获取用户的联系人 | ||
- | <code iOS> | + | <code java> |
- | #pragma mark - UCSIMUserInfoDataSource method | + | 在试图控制器里设置一个代理然后实现参数的传递 |
+ | //设置代理 | ||
+ | [UCSUIKitManager setIMUserInfoDataSource:self]; | ||
+ | [UCSUIKitManager setUserInfoFetcherWithDelegate:self isCacheUserInfo:NO]; | ||
+ | |||
+ | #pragma mark - UCSIMUserInfoDataSource method | ||
-(NSArray*)getFriends | -(NSArray*)getFriends | ||
{ | { | ||
行 176: | 行 248: | ||
</code> | </code> | ||
- | ======7、UI的自定义 ====== | + | ===== 6.2、群信息头像和名称的自定义 ===== |
+ | |||
+ | 云之讯群信息头像的的自定义和用户头像的自定义原理是一样的,需要开发者自己根据获取群的ID设置群的头像和名称。 | ||
+ | |||
+ | 设计的原理: | ||
+ | 通过UCSUIKitManager的代理设置数据源的参数,然后调用代理方法参数的Block来回调数据,完成SDK从外部数据的获取。 | ||
+ | |||
+ | 设置群信息是通过代理协议来设置数据源(类似TableView的代理方式),开发者只要实现2个代理就能设置数据源(可参考Demo)。 | ||
+ | |||
+ | <code java> | ||
+ | /** | ||
+ | @protocol UCSIMUserInfoFetcherGroupDelegagte | ||
+ | 群信息的代理 | ||
+ | */ | ||
+ | @protocol UCSIMGroupInfoFetcherDelegagte <NSObject> | ||
+ | /** | ||
+ | * 获取某个群信息。 | ||
+ | * | ||
+ | * @param groupId 群 Id。 | ||
+ | * @param completion 群信息 | ||
+ | */ | ||
+ | - (void)getGroupInfoWithGroupId:(NSString *)groupId completion:(void(^)(UCSGroupInfo *groupInfo))completion; | ||
+ | @end | ||
+ | /** | ||
+ | 群信息数据获取器。 | ||
+ | */ | ||
+ | @protocol UCSIMGroupInfoDataSource <NSObject> | ||
+ | /** | ||
+ | 获取群信息列表。 | ||
+ | @return 群信息信息列表。 | ||
+ | */ | ||
+ | -(NSArray*)getGroupData; | ||
+ | @end | ||
+ | |||
+ | </code> | ||
+ | 在提供的用户信息的类中实现2个代理,组件的SDK就能获取到用户的信息数据 | ||
+ | getGroupDat是开发者根据群ID设置群的消息 | ||
+ | <code java> | ||
+ | #pragma mark -UCSIMGroupInfoDataSource | ||
+ | - (NSArray*)getGroupData | ||
+ | { | ||
+ | |||
+ | UCSGroupInfo *group = [[UCSGroupInfo alloc]init]; | ||
+ | group.userId = @"2"; | ||
+ | group.name = @"体验群"; | ||
+ | group.portraitUri = @"http://pica.nipic.com/2007-11-09/2007119124413448_2.jpg"; | ||
+ | |||
+ | |||
+ | UCSGroupInfo *group1 = [[UCSGroupInfo alloc]init]; | ||
+ | group1.userId = @"10"; | ||
+ | group1.name = @"我的群"; | ||
+ | group1.portraitUri = @"http://pica.nipic.com/2007-11-09/2007119124413448_2.jpg"; | ||
+ | |||
+ | [self.allGroupArray addObject:group]; | ||
+ | [self.allGroupArray addObject:group1]; | ||
+ | |||
+ | return self.allGroupArray; | ||
+ | } | ||
+ | |||
+ | #pragma mark --UCSIMGroupInfoFetcherDelegagte | ||
+ | - (void)getGroupInfoWithGroupId:(NSString *)groupId completion:(void (^)(UCSGroupInfo *))completion | ||
+ | { | ||
+ | UCSGroupInfo *user = nil; | ||
+ | if([groupId length] == 0) | ||
+ | return completion(nil); | ||
+ | for(UCSGroupInfo *u in self.allGroupArray) | ||
+ | { | ||
+ | if([u.userId isEqualToString:groupId]) | ||
+ | { | ||
+ | user = u; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | return completion(user); | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ===== 6.3、导航栏的自定义 ===== | ||
通过子类的继承的方式,重写父类方法来达到UI的自定义。从而自定义内容更广,形式更加简单。 | 通过子类的继承的方式,重写父类方法来达到UI的自定义。从而自定义内容更广,形式更加简单。 | ||
会话列表界面、会话界面、邀请好友界面、聊天设置界面都继承BaseViewController。 | 会话列表界面、会话界面、邀请好友界面、聊天设置界面都继承BaseViewController。 | ||
- | 可以被重写的方法如下: | + | 能够被重写的方法如下所示: |
- | <code iOS> | + | <code java> |
- | /*! | + | /** |
@brief 配置导航栏上 | @brief 配置导航栏上 | ||
*/ | */ | ||
-(void)configureNavigationBar; | -(void)configureNavigationBar; | ||
- | + | /** | |
- | /*! | + | |
* 导航左面按钮点击事件 | * 导航左面按钮点击事件 | ||
*/ | */ | ||
- (void)leftBarButtonItemPressed:(id)sender; | - (void)leftBarButtonItemPressed:(id)sender; | ||
- | + | /** | |
- | /*! | + | |
* 导航右面按钮点击事件 | * 导航右面按钮点击事件 | ||
*/ | */ | ||
- (void)rightBarButtonItemPressed:(id)sender; | - (void)rightBarButtonItemPressed:(id)sender; | ||
- | /*! | ||
- | @brief 设置导航栏的标题的颜色和文字 | ||
- | */ | ||
- | - (void)setNavigationTitle:(NSString *)title textColor:(UIColor*)textColor; | ||
</code> | </code> | ||
- | 注意:BaseViewController中只有-(void)configureNavigationBar;这个方法。聊天界面、邀请好友界面以上方法都存在。 | ||
- | ======8、常见问题 ====== | ||
- | Q:集成SDK后,头像不显示 | + | <html> |
+ | <span style="color:red;font-size:100%;">注意事项: | ||
+ | 1、如果需要替换聊天界面的背景图片,可以在ucsimkitBundle.bundle资源库文件中替换对应chat_backgroud_sky名字的图片 | ||
+ | 2、自定义的聊天界面需要开发者新建一个类,继承chatviewController。</span> | ||
+ | </html> | ||
+ | |||
+ | |||
+ | ======7、常见问题 ====== | ||
+ | |||
+ | **Q:集成SDK后,头像不显示** | ||
+ | |||
+ | <html> | ||
+ | <span style="color:red;font-size:100%;">A:检查是否正确实现了-(NSArray*)getFriends;这个代理方法。 </span> | ||
+ | </html> | ||
+ | |||
+ | |||
+ | **Q:集成SDK后,如果自定义了聊天页面(chatViewController),然后需击会话页面的cell,进入聊天页面,聊天页面的风格需要和自定义的聊天页面相同。 | ||
+ | ** | ||
+ | |||
+ | <html> | ||
+ | <span style="color:red;font-size:100%;">A:请联系我们的技术支持,有相应的定制版本。 </span> | ||
+ | </html> | ||
+ | |||
+ | |||
+ | **Q:集成SDK后,编译的过程fail,bug工作台出现----x86的字样。 | ||
+ | ** | ||
- | A:检查是否正确实现了-(NSArray*)getFriends;这个代理方法。 | + | <html> |
+ | <span style="color:red;font-size:100%;">A:请选择真机调试,SDK库文件暂不支持模拟器编译。 </span> | ||
+ | </html> |