差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
im:ios:sdk:import [2019/04/16 09:39]
jk [iOS SDK 介绍及导入]
im:ios:sdk:import [2019/04/16 09:51]
jk
行 1: 行 1:
 +====== 集成 iOS SDK 前的准备工作 ======
 +
 +----
 +
 +===== 注册环信开发者账号并创建后台应用 =====
 +
 +详细操作步骤见[[im:​quickstart:​guide:​experience|开发者注册及管理后台]]。
 +
 +===== 制作并上传推送证书 =====
 +
 +如果不需要实现离线推送功能,请忽略这步。
 +
 +==== 制作推送证书 ====
 +
 +第 1 步:打开[[https://​developer.apple.com/​|苹果开发者网站]]。
 +
 +{{ :​im:​300iosclientintegration:​ios_apns_1_v1.jpg?​nolinK|苹果开发者网站}}
 +
 +第 2 步:从 Account 进入 Certificates,​ Identifiers & Profiles。
 +
 +{{ :​im:​300iosclientintegration:​ios_apns_2_v1.jpg?​nolinK|Member Center}}
 +
 +第 3 步:选择要制作的推送证书。
 +
 +{{:​im:​300iosclientintegration:​ios_apns_3_v1.jpg?​nolink|选择推送证书}}
 +
 +  * 对于开发环境(sandbox)的推送证书,请选择 Apple Push Notification service SSL (Sandbox)
 +  * 对于生产环境(production)的推送证书,请选择 Apple Push Notification service SSL (Sandbox & Production)
 +
 +注意:环信暂时不支持Apple Push Notification Authentication Key (Sandbox & Production)
 +
 +第 4 步:选择对应的 APP ID(环信示例使用 ChatDemoUI,所以此处选择 com.easemob.enterprise.demo.ui)。
 +
 +{{:​im:​300iosclientintegration:​ios_apns_4_v1.jpg?​nolink|选择APP ID}}
 +
 +第 5 步:根据 Certificate Assistant 的提示,创建 Certificate Request。
 +
 +{{:​im:​300iosclientintegration:​ios_apns_5_v1.jpg?​nolink|创建Certificate Request}}
 +
 +第 6 步:上传上一步中创建的 Certificate Request 文件。
 +
 +{{:​im:​300iosclientintegration:​ios_apns_6_v1.jpg?​nolink|上传Certificate Request}}
 +
 +第 7 步:上传完毕后,推送证书就被正确生成了,之后我们下载下来这个证书,并双击导入系统。
 +
 +{{:​start:​300iosclientintegration:​ios_apns_7.png?​nolink|下载推送证书}}
 +
 +==== 上传推送证书 ====
 +
 +第 1 步:打开 Application –> Utilities –> Keychain Access -> Certificates 应用,我们会看到有刚刚我们制作好的推送证书。
 +
 +{{:​start:​300iosclientintegration:​ios_apns_8.png?​nolink|导出推送证书}}
 +
 +导出并保存为 P12 格式并设置密码。**(本步导出证书使用的电脑务必与“第 5 步:创建 Certificate Request”时使用的是一台电脑。)**
 +
 +第 2 步:登录[[http://​console.easemob.com|环信管理后台]]。
 +
 +{{:​im:​ios:​sdk:​注册.png?​nolink|}}
 +
 +第 3 步:输入了正确的账号后,选择对应的 APP(环信示例为 easemob,点击 easemob)。
 +
 +{{:​im:​ios:​sdk:​3_.png?​direct|}}
 +
 +第 4 步:填写证书名称。
 +
 +这个名称是个有意义的名字,对推送直接相关,稍后会在源码的修改里继续用到这个名字。上传之前导出的 P12 文件,密码则为此 P12 文件的密码,证书类型请根据具体情况选择。
 +
 +(创建的是 Apple Push Notification service SSL Sandbox 请选择开发环境;Apple Push Notification service SSL Production 请选择生产环境。)
 +
 +第 5 步:上传证书。
 +
 +{{:​im:​ios:​sdk:​上传证书.png?​nolink|}}
 +
 +注意:请正确选择是生产环境还是测试环境的证书,应用包名指的是Bundle Id。
 +
 +
 ====== iOS SDK 介绍及导入 ====== ====== iOS SDK 介绍及导入 ======
  
行 135: 行 211:
 mv HyphenateLite HyphenateLite.framework/​ mv HyphenateLite HyphenateLite.framework/​
 </​code>​ </​code>​
 +
 +====== iOS SDK 快速集成 ======
 +
 +===== 快速集成单聊功能 =====
 +
 +=== 第 1 步:集成环信SDK ===
 +
 +方式一:
 +
 +推荐使用Cocoapods集成环信SDK。Cocoapods提供了一个简单的依赖管理系统,避免手动导入产生的错误(首先需要确认已经安装了Cocoapods)。
 +
 +<​code>​
 +sudo gem install cocoapods
 +pod setup
 +</​code>​
 +
 +在Xcode项目的根目录下,新建一个空文件,命名为Podfile,向此文件添加以下行:
 +
 +<​code>​
 +#Lite版本
 +pod '​HyphenateLite'​
 +#Full版本
 +pod '​Hyphenate'​
 +</​code>​
 +
 +在Podfile目录下,执行以下指令:
 +
 +<​code>​
 +pod install
 +</​code>​
 +
 +方式二:
 +
 +在环信官网下载SDK,[[http://​www.easemob.com/​download/​im|点击下载]]
 +
 +手动将SDK导入到自己的工程中[[im:​ios:​sdk:​import|(集成介绍)]]
 +
 +=== 第 2 步:初始化环信SDK ===
 +
 +以Cocoapods方式集成SDK,需要引入相关头文件
 +
 +<code objc>
 +//​Lite版本
 +#import <​HyphenateLite/​HyphenateLite.h>​
 +//​Full版本
 +#import <​Hyphenate/​Hyphenate.h>​
 +</​code>​
 +
 +在工程的 AppDelegate 中的以下方法中,调用 SDK 对应方法
 +
 +<code objc>
 +- (BOOL)application:​(UIApplication *)application didFinishLaunchingWithOptions:​(NSDictionary *)launchOptions
 +{
 +    //​AppKey:​注册的AppKey,详细见下面注释。
 +    //​apnsCertName:​推送证书名(不需要加后缀),详细见下面注释。
 +    EMOptions *options = [EMOptions optionsWithAppkey:​@"​douser#​istore"​];​
 +    options.apnsCertName = @"​istore_dev";​
 +    [[EMClient sharedClient] initializeSDKWithOptions:​options];​
 +
 +    return YES;
 +}
 +
 +// APP进入后台
 +- (void)applicationDidEnterBackground:​(UIApplication *)application
 +{
 +    [[EMClient sharedClient] applicationDidEnterBackground:​application];​
 +}
 +
 +// APP将要从后台返回
 +- (void)applicationWillEnterForeground:​(UIApplication *)application
 +{
 +    [[EMClient sharedClient] applicationWillEnterForeground:​application];​
 +}
 +</​code>​
 +
 +=== 第 3 步:登录环信 ===
 +
 +登录:调用 SDK 的登录接口进行的操作。
 +
 +<code objc>
 +[[EMClient sharedClient] loginWithUsername:​@"​8001"​
 +                                  password:​@"​111111"​
 +                                completion:​^(NSString *aUsername, EMError *aError) {
 +                                    if (!aError) {
 +                                        NSLog(@"​登录成功"​);​
 +                                    } else {
 +                                        NSLog(@"​登录失败"​);​
 +                                    }
 +                                }];
 +</​code>​
 +
 +=== 第 4 步:导入EaseUI ===
 +
 +方式一:
 +
 +下载Release版本SDK,在自己的项目中导入EaseUI整个目录
 +
 +{{:​im:​300iosclientintegration:​ios_quickstart_release_catalog.jpg|}}
 +
 +方式二:
 +通过cocoapods集成EaseUI
 +<​code>​
 +pod '​EaseUI',​ :git => '​https://​github.com/​easemob/​easeui-ios-hyphenate-cocoapods.git'​
 +</​code>​
 +
 +=== 第 5 步:初始化单聊页面 ===
 +
 +<code objc>
 +//​环信ID:​@"​8001"​
 +//​聊天类型:​EMConversationTypeChat
 +EaseMessageViewController *chatController = [[EaseMessageViewController alloc] initWithConversationChatter:​@"​8001"​ conversationType:​EMConversationTypeChat];​
 +</​code>​
 +
 +[[im:​ios:​basics:​message|消息功能集成详细介绍]]
 +
 +===== 快速集成群聊功能 =====
 +
 +首先需要完成快速集成单聊上述步骤。
 +
 +=== 创建群组 ===
 +
 +<code objc>
 +EMError *error = nil;
 +EMGroupOptions *setting = [[EMGroupOptions alloc] init];
 +setting.maxUsersCount = 500;
 +setting.style = EMGroupStylePublicOpenJoin;//​ 创建不同类型的群组,这里需要才传入不同的类型
 +EMGroup *group = [[EMClient sharedClient].groupManager createGroupWithSubject:​@"​群组名称"​ description:​@"​群组描述"​ invitees:​@[@"​6001",​@"​6002"​] message:​@"​邀请您加入群组"​ setting:​setting error:&​error];​
 +if(!error){
 +    NSLog(@"​创建成功 -- %@",​group);​
 +}
 +</​code>​
 +
 +=== 初始化群聊页面 ===
 +
 +<code objc>
 +//​群ID:​@"​groupId"​
 +//​聊天类型:​EMConversationTypeGroupChat
 +EaseMessageViewController *chatController = [[EaseMessageViewController alloc] initWithConversationChatter:​@"​groupId"​ conversationType:​EMConversationTypeGroupChat];​
 +</​code>​
 +
 +[[im:​ios:​basics:​group|群组功能集成详细介绍]]
 +
 +===== 快速集成好友功能 =====
 +
 +首先需要完成快速集成单聊上述步骤。
 +
 +=== 添加好友 ===
 +
 +<code objc>
 +[[EMClient sharedClient].contactManager addContact:​@"​8001"​
 +                                           ​message:​@"​我想加您为好友"​
 +                                        completion:​^(NSString *aUsername, EMError *aError) {
 +                                            if (!aError) {
 +                                                NSLog(@"​邀请发送成功"​);​
 +                                            }
 +                                        }];
 +
 +//​同意好友申请
 +[[EMClient sharedClient].contactManager approveFriendRequestFromUser:​@"​8001"​
 +                                                          completion:​^(NSString *aUsername, EMError *aError) {
 +                                                              if (!aError) {
 +                                                                  NSLog(@"​同意好友成功"​);​
 +                                                              }
 +                                                          }];
 +
 +//​拒绝好友申请
 +[[EMClient sharedClient].contactManager declineFriendRequestFromUser:​@"​8001"​
 +                                                          completion:​^(NSString *aUsername, EMError *aError) {
 +                                                              if (!aError) {
 +                                                                  NSLog(@"​拒绝好友成功"​);​
 +                                                              }
 +                                                          }];
 +</​code>​
 +
 +=== 删除好友 ===
 +
 +<code objc>
 +// 删除好友
 +[[EMClient sharedClient].contactManager deleteContact:​@"​8001"​
 +                                           ​isDeleteConversation:​ YES
 +                                           ​completion:​^(NSString *aUsername, EMError *aError) {
 +                                               if (!aError) {
 +                                                   ​NSLog(@"​删除成功"​);​
 +                                               }
 +                                           }];
 +</​code>​
 +
 +=== 获取好友 ===
 +
 +<code objc>
 +//​从服务器获取所有的好友
 +[[EMClient sharedClient].contactManager getContactsFromServerWithCompletion:​^(NSArray *aList, EMError *aError) {
 +    if (!aError) {
 +        NSLog(@"​获取成功"​);​
 +    }
 +}];
 +//​从数据库获取所有的好友
 +NSArray *userlist = [[EMClient sharedClient].contactManager getContacts];​
 +</​code>​
 +
 +[[im:​ios:​basics:​buddy|好友功能集成详细介绍]]
 +
 +===== 快速集成演示视频 =====
 +
 +[[https://​ke.qq.com/​webcourse/​index.html#​cid=320169&​term_id=100380031&​taid=2357924160922281&​vid=z1428vxxdj0|EaseUI集成参考视频]]
 +
 +[[https://​ke.qq.com/​webcourse/​index.html#​cid=320169&​term_id=100380031&​taid=2357928455889577&​vid=w14285asu4n|SDK集成参考视频]]
 +
  
 ---- ----