最近需求,項目裏需要集成雲信,簡單的做了個登錄發起單聊的demo,老規矩,先上圖
一,直接把雲信的uikit導入項目modules作爲依賴庫,具體方法網上很多,隨便搜一下就可以了,導入後就可以使用雲信的UI了
二,詳細步驟:
1,簡單的寫個登錄界面,以及主界面,這裏不再贅述了
2,在清單文件內直接按照雲信文檔複製所需要的權限以及服務相關,注意修改包名部分,主要就兩個部分,如下圖所示,如果忘記修改,將導致安裝失敗
3,注意uikit的和主項目的build.gradle文件中所添加的依賴,要避免重複,重複時版本又不一致也會導致報錯,最新版本的uikit中有fastjson之類的jar包,所以主項目中依賴了哪些第三方肯定會有所衝突,此處要注意
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "1.0"
renderscriptTargetApi 29
renderscriptSupportModeEnabled true
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res', 'res-ptr2', 'res-chatroom']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions{
doNotStrip '*/mips/*.so'
doNotStrip '*/mips64/*.so'
}
}
dependencies {
api fileTree(dir: 'libs', include: '*.jar')
api("androidx.appcompat:appcompat:1.1.0-rc01")
api("androidx.legacy:legacy-support-v4:1.0.0")
api("com.google.android.material:material:1.1.0-alpha09")
api("androidx.constraintlayout:constraintlayout:1.1.3")
// api 'me.everything:overscroll-decor-android:1.0.4'
api "me.leolin:ShortcutBadger:1.1.22@aar"
api 'com.github.bumptech.glide:glide:4.9.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'
//api 'jp.wasabeef:glide-transformations:3.0.1'
implementation "com.github.chrisbanes:PhotoView:2.3.0"
//api 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1' // if you want to use the Glide GPU Filters
}
4,之後衝突解決完畢後,就按照文檔初始化application即可,初始化後登錄界面登錄方法,在登錄成功後記得添加雲信的登錄回調,不添加會導致登錄異常
private void login() {
LoginInfo info = new LoginInfo(nameText.getText().toString(), pwdText.getText().toString()); // config...
RequestCallback<LoginInfo> callback = new RequestCallback<LoginInfo>() {
@Override
public void onSuccess(LoginInfo param) {
Toast.makeText(LoginActivity.this, "恭喜您登陸成功", Toast.LENGTH_SHORT).show();
NimUIKitImpl.setAccount(param.getAccount());
startActivity(new Intent(LoginActivity.this, MainActivity.class));
}
@Override
public void onFailed(int code) { }
@Override
public void onException(Throwable exception) {}
// 可以在此保存LoginInfo到本地,下次啓動APP做自動登錄用
};
NIMClient.getService(AuthService.class).login(info).setCallback(callback);
}
5,登錄成功後發起單聊,
private void initView() {
logout = findViewById(R.id.bt_logout);
logout.setOnClickListener(v -> logout());
chat = findViewById(R.id.bt_chat);
chat.setOnClickListener(v -> NimUIKit.startP2PSession(MainActivity.this,"private"));
state = findViewById(R.id.tv_state);
}
6,退出登錄
/**
* 註銷回調函數
*/
private void logout() {
NIMClient.getService(AuthService.class).logout();
finish();
}
demo已上傳,需要的點擊直接下載
另外發現了一個視頻製作gif的網站,省卻了下載工具的煩惱