这是本文档旧的修订版!


集成 SDK 基础功能


在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念。

SDK 中,大部分接口都提供了同步和异步方法(注:同步方法会阻塞主线程,需要用户自己创建异步线程执行;带有 block 的方法为异步方法。)

第 1 步:引入相关头文件 #import <HyphenateLite/HyphenateLite.h>(如果是实时音视频版本,为<Hyphenate/Hyphenate.h>)。

第 2 步:在工程的 AppDelegate 中的以下方法中,调用 SDK 对应方法。

- (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];
}

调用的 SDK 接口参数解释如下:

环信为 IM 部分提供了 APNS 推送功能,如果您要使用,请跳转到APNS离线推送

注册模式分两种,开放注册和授权注册。

建议使用异步注册方法,防止网络不好的情况下,出现卡UI主线程的情况出现。

  • 只有开放注册时,才可以客户端注册。开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号。
  • 授权注册的流程应该是您服务器通过环信提供的 REST API 注册,之后保存到您的服务器或返回给客户端。
[[EMClient sharedClient] registerWithUsername:@"8001" password:@"111111" completion:^(NSString *aUsername, EMError *aError) {
    if (!aError) {
        NSLog(@"注册成功");
    } else {
        NSLog(@"注册失败的原因---%@", aError.errorDescription);
    }
}];

登录:调用 SDK 的登录接口进行的操作。

建议使用异步登录方法,防止网络不好的情况下,出现卡UI主线程的情况出现。

[[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111" completion:^(NSString *aUsername, EMError *aError) {
    if (!aError) {
        NSLog(@"登录成功");
    } else {
        NSLog(@"登录失败的原因---%@", aError.errorDescription);
    }
}];

自动登录:sdk在初始化的时候会根据Options中的isAutoLogin来决定是否执行自动登录,如果为YES,则sdk会直接登录上次登录且未做退出操作的账号,如果值为NO,则为未登录任何账号的状态。isAutoLogin默认为YES

注意:3.6.5版本之后,isAutoLogin默认为YES,SDK会自动登录,不需要主动设置'iOS SDK 快速集成 </WRAP>

</WRAP>