网易云信集成****(二):如何基于UI组件实现单聊功能?
上期我们已经集成了Android登录模块,这期我们就简单实现下登录成功之后,如何通过云信的Uikit集成单聊模块
前期准备
- 下载云信即时通讯的Android Demo,提取Demo中的Uikit模块
大概思路是这样的
- 在上期Android 登录Demo中,将Demo中的uikit模块作为module导入
- 使用Uikit中的方法实现单聊模块
先从云信官网下载即时通讯的Andriod Demo(https://yunxin.163.com/im-sdk-demo?from=nim&clueFrom=nim)
下载完成之后,我们将Demo中的Uikit模块作为module导入
导入Uikit之后,需要增加相应的文件配置(这里是为了跟Demo一致,如果有其他业务需求,可以不参考这里)
- 在根目录的build.gradle配置如下选项
ext { compileSdkVersion = 26 buildToolsVersion = '26.0.2' minSdkVersion = 14 targetSdkVersion = 26 appTargetSdkVersion = 26 versionCode = 59 versionName = '5.7.0' sdkSourceCompatibility = 1.7 sdkTargetCompatibility = 1.7 appSourceCompatibility = 1.7 appTargetCompatibility = 1.7 }
- 在根目录下的gradle.properties增加参数
V7_APPCOMPAT_VERSION=26.+ V4_SUPPORT_VERSION=26.+ DESIGIN_SUPPORT_VERSION=26.+ CONSTRAIT_SUPPORT_VERSION=1.0.2
- 将登陆Demo目录的build.gradle中SDK,移动到Uikit目录下的build.gradle
Uikit导入成功之后,我们就可以愉快的写代码了。
代码部分
在原来初始化SDK的类MyApplicatoin中,初始化Uikit,但需要判断是否在主进程,这块在文档中有详细介绍
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); // SDK初始化(启动后台服务,若已经存在用户登录信息, SDK 将完成自动登录) NIMClient.init(this, null, null); if(NIMUtil.isMainProcess(this)){ //初始化UIKIT NimUIKit.init(this); } } }
初始化完Uikit之后,我们在原来的MainActivity去新增一个button,来直接使用Uikit中的控件,调用方法
NimUIKit.startP2PSession(MainActivity.this,"lin");
public class MainActivity extends Activity{ private Button logoutButton; private TextView textView; private Button startChat; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViews();//初始化控件 textView.setText("登陆成功,good"); } private void findViews(){ logoutButton =findViewById(R.id.logout); textView = findViewById(R.id.textView); startChat = findViewById(R.id.startChat); logoutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { logout(); } }); startChat.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { NimUIKit.startP2PSession(MainActivity.this,"lin"); } }); } /** * 注销回调函数 */ private void logout() { NIMClient.getService(AuthService.class).logout(); finish(); } }
这样就完美的利用了Uikit封装的单聊界面,实现单聊的功能(可以试着发消息,你会发现有惊喜哦!)
想看更多集成****,请戳https://netease.im/videoTutorial