初始化

在调用任何功能前 必须 先进行初始化,传入数据缓存目录和SDK的配置信息。

void InitVChat()
{
    void* context=NULL;
    #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    //某些系统下必须是绝对路径,如Android系统下是“/data/data/{程序包名}/lib/{so文件名}”
    JniMethodInfo mi;
    if (JniHelper::getMethodInfo(mi,
        "android/content/Context",
        "getApplicationContext",
        "()Landroid/content/Context;")) {
        jobject jo = JniHelper::getEnv()->CallObjectMethod(JniHelper::getActivity(), mi.methodID);
        context= JniHelper::getEnv()->NewGlobalRef(jo);
        debugLog("getApplicationContext success %p", context_);
        }
    else
    {}
    #endif
    nim::VChat::Init(context);
}
void Init()
{
    auto dataPath = FileUtils::getInstance()->getWritablePath();
    nim::SDKConfig config ;//填写配置参数
    //初始化云信IMSDK
    if(!nim::Client::Init("NimCocos2dDemo", dataPath, "", config))
    {
        //初始化失败
    }
    //初始化音视频模块
    InitVChat();
}

在程序退出前,先调用nim::VChat::Cleanup进行音视频模块的清理工作,然后调用接口nim::Client::Cleanup() 进行NIM SDK 的清理工作,nim::Client::Cleanup()需要与nim::Client::Init配对执行,通常在程序启动时调用nim::Client::Init进行初始化,在程序退出时调用nim::Client::Cleanup()释放资源。对于清理工作的注意事项请查看后续的"登出/退出和清理SDK"章节。