集成方式
更新时间: 2022/12/06 12:05:19
开发准备
SDK内容
libs 目录根据平台存放云信动态库,nim 目录下是云信SDK对外提供的接口头文件。云信SDK提供 c 和 c++ 接口文件,c接口文件位于nim/c目录中,c++接口文件位于nim/cpp目录中,在cocos-2dx游戏中推荐使用c++ 接口,开发效率更高。接口根据功能模块存放在不同的目录中:
nim: 即时通信相关接口
nim_audio :语音功能相关接口
nim_chatroom: 聊天室相关接口
快速接入SDK
-
下载并导入SDK
-
下载网易云信cocos-2dx SDK压缩包,目前仅支持c/c++。
-
创建Cocos2d-x 工程
使用 cocos 命令创建工程
cocos new -p <package name\> -l cpp <project name\>
,创建工程目录。 如:cocos new -p org.cocos2dx.nim_cocos2d -l cpp nim_cocos2d
-
导入SDK
将云信SDK压缩包解压后拷贝到创建的cocos项目内。
-
-
Android 集成
-
使用 Android Studio 打开创建的 cocos 项目中 proj.android-studio 目录
-
导入jar包
在运行SDK目录中libs/Android 目录下包含两个jar包:nim_sdk.jar 和 nim_audio.jar。nim_sdk.jar 是云信SDK必须的,需要确保正确引入项目中,nim_audio.jar 在使用语音功能时会用到。
-
权限配置
云信SDK需要使用以下权限:
xml
<!-- Enable internet for app!!!. --> <uses-permission android:name="android.permission.INTERNET" /> <!-- Getting the state of internet for app!!!. --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- write or read user data file for app!!!. --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
需要在AndroidManifest.xml文件中确保已经配置了这些权限。
-
编译链接
修改 Android Studio工程目录中的Android.mk文件,将云信SDK引入工程,假设SDK目录为nim_cocos2d-x_sdk。
加入预编译动态库:
makefile
#import nim c library include $(CLEAR_VARS) include $(MY_ROOT_PATH)/nim_cocos2d-x_sdk/libs/Android/Android.mk
编译云信SDK c++ 代码:
makefile
# _NIM_CPP_LIBRARY_BEGIN include $(CLEAR_VARS) include $(MY_ROOT_PATH)/nim_cocos2d-x_sdk/nim/cpp/third_party/jsoncpp/Android.mk include $(CLEAR_VARS) include $(MY_ROOT_PATH)/nim_cocos2d-x_sdk/nim/cpp/nim/Android.mk include $(CLEAR_VARS) include $(MY_ROOT_PATH)/nim_cocos2d-x_sdk/nim/cpp/nim_chatroom/Android.mk include $(CLEAR_VARS) include $(MY_ROOT_PATH)/nim_cocos2d-x_sdk/nim/cpp/nim_audio/Android.mk # _NIM_CPP_LIBRARY_END
链接:
makefile
LOCAL_STATIC_LIBRARIES += jsoncpp LOCAL_SHARED_LIBRARIES += nim LOCAL_SHARED_LIBRARIES += nim_chatroom LOCAL_SHARED_LIBRARIES += nim_audio LOCAL_SHARED_LIBRARIES += fjni_wrapper LOCAL_STATIC_LIBRARIES += nim_cpp nim_chatroom_cpp nim_audio_cpp
以上代码中包含了即时通信、聊天室和语音模块,用户可以根据需要移除不需要的SDK功能。在开发时还需要设置
LOCAL_C_INCLUDES
加入正确的头文件包含路径。 -
Proguard混淆配置
请务必不要混淆网易云信 IM SDK,如果工程设置了代码混淆,在工程的Proguard混淆文件proguard-rules.pro中加入以下配置:
-
添加初始化调用:
修改 AppActivity.java 文件,在使用网易云信 IM SDK之前,需要调用nim_sdk.jar包里的NIMSDK.init初始化接口进行必要的初始化工作,如下:
-
-
Windows 集成
-
引入云信SDK c++ 项目
在cocos工程中添加nim\cpp目录中各功能模块的的项目文件,并在cocos主项目中添加对这些项目的引用。
-
配置正确的头文件包含目录
-
在程序运行时需要将SDK目录libs\Windows\x86下的dll文件拷贝到程序执行目录,可以根据功能模块选择需要的dll,不需要的模块可以不拷贝。
-
-
iOS 集成
SDK 只支持 Xcode7.x,不支持 Xcode6.x ,支持 iOS 7.0 以上版本。
-
集成 SDK
- 将压缩包解压后,将nim_cocos2d-x_sdk目录拷贝到相应Cocos2d-x工程目录,找到~/nim_cocos2d-x_sdk/libs/iOS,拖到工程的 FrameWorks下,同时添加下系统库:libz.tbd(或libz.dylib)分别将~/nim_cocos2d_sdk/nim/cpp各子文件夹(nim、nim_audio、nim_chatroom)下找到需要的Xcode project,并将其拖入到Cocos Workspace中。若不需要音频和聊天室相关的功能,则不必添加其相应project.如图
在cocos工程中链接相应的library。
- 设置相应的Header Search Paths,如图:
- 设置相应的Library Search Paths,如图:
编译通过则集成工作就完成了。
-