Qiscus Android SDK简介
Qiscus Android SDK是由Qiscus公司开发的一款强大的聊天开发工具包,旨在帮助开发者快速为Android应用添加实时通讯功能。通过使用Qiscus SDK,开发者无需处理复杂的实时通信基础设施,就能轻松实现高质量的聊天功能。
Qiscus Android SDK提供了丰富的功能,包括:
- 一对一聊天
- 群组聊天
- 频道聊天
- 输入状态指示
- 图片和文件附件
- 在线状态
- 消息送达回执
- 消息已读回执
- 删除消息
- 离线消息
- 屏蔽用户
- 自定义实时事件
- 服务器端集成(API和Webhook)
- 嵌入聊天机器人
- 推送通知
- 导入/导出消息
通过这些功能,开发者可以构建功能丰富、用户体验出色的聊天应用。
快速开始
要开始使用Qiscus Android SDK,需要按照以下步骤进行:
1. 获取APP ID
首先,您需要在Qiscus聊天管理后台创建应用并获取APP ID。您可以创建多个APP ID来管理不同的应用。
2. 安装SDK
Qiscus Android SDK要求最低API级别为16(Jelly Bean)。要集成SDK,需要在项目的build.gradle文件中添加以下依赖:
allprojects {
repositories {
maven { url "https://artifactory.qiscus.com/artifactory/qiscus-library-open-source" }
}
}
dependencies {
implementation 'com.qiscus.sdk:chat-core:1.8.1'
}
3. 初始化SDK
在应用启动时,需要使用APP ID初始化Qiscus SDK:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
QiscusCore.initWithAppId(this, "YOUR_APP_ID");
}
}
4. 用户认证
使用SDK功能前,需要进行用户认证:
QiscusCore.setUser(userId, userKey)
.withUsername(username)
.withAvatarUrl(avatarUrl)
.save(new QiscusCore.SetUserListener() {
@Override
public void onSuccess(QiscusAccount qiscusAccount) {
// 认证成功
}
@Override
public void onError(Throwable throwable) {
// 认证失败
}
});
完成以上步骤后,您就可以开始使用Qiscus SDK的各项功能了。
核心功能
创建聊天室
Qiscus SDK支持创建三种类型的聊天室:一对一聊天、群组聊天和频道。
一对一聊天
QiscusApi.getInstance().chatUser(userId, options)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(chatRoom -> {
// 聊天室创建成功
}, throwable -> {
// 创建失败
});
群组聊天
QiscusApi.getInstance().createGroupChat(roomName, userIds, avatarUrl, options)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(chatRoom -> {
// 群组创建成功
}, throwable -> {
// 创建失败
});
频道
QiscusApi.getInstance().createChannel(uniqueId, roomName, avatarUrl, options)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(chatRoom -> {
// 频道创建成功
}, throwable -> {
// 创建失败
});
管理聊天室成员
您可以添加或删除聊天室成员:
// 添加成员
QiscusApi.getInstance().addParticipants(roomId, userId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(chatRoom -> {
// 成员添加成功
}, throwable -> {
// 添加失败
});
// 删除成员
QiscusApi.getInstance().removeParticipants(roomId, userId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(chatRoom -> {
// 成员删除成功
}, throwable -> {
// 删除失败
});
推送通知
要启用推送通知,首先需要集成FCM,然后在Qiscus配置中启用FCM:
QiscusCore.getChatConfig().setEnableFcmPushNotification(true);
接下来,注册FCM token:
if (QiscusCore.hasSetupUser()) {
FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(task -> {
if (task.isSuccessful() && task.getResult() != null) {
QiscusCore.registerDeviceToken(task.getResult());
}
});
}
事件处理
Qiscus SDK使用EventBus来广播事件。您可以注册事件监听器来处理各种实时事件:
public class MyActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
EventBus.getDefault().register(this);
}
@Override
protected void onPause() {
super.onPause();
EventBus.getDefault().unregister(this);
}
@Subscribe
public void onReceiveComment(QiscusCommentReceivedEvent event) {
// 处理新消息
}
@Subscribe
public void onReceiveRoomEvent(QiscusChatRoomEvent roomEvent) {
// 处理聊天室事件(如输入状态、已读回执等)
}
@Subscribe
public void onUserStatusChanged(QiscusUserStatusEvent event) {
// 处理用户状态变化
}
}
高级功能
使用ProGuard
如果您的应用使用ProGuard,请确保添加Qiscus ProGuard规则到您的ProGuard配置中。
RxJava支持
Qiscus SDK支持RxJava,您可以使用RxJava风格的API:
Qiscus.setUser("user@email.com", "password")
.withUsername("Tony Stark")
.withAvatarUrl("http://avatar.url.com/handsome.jpg")
.save()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(qiscusAccount -> {
// 用户设置成功
}, throwable -> {
// 设置失败
});
结语
Qiscus Android SDK提供了丰富的功能和灵活的API,可以帮助开发者快速为Android应用添加高质量的实时聊天功能。通过本文的介绍,您应该已经对Qiscus SDK有了基本的了解,并能够开始使用它来构建您的聊天应用。
要深入了解更多细节,请参考Qiscus官方文档。如果您在使用过程中遇到任何问题,可以在GitHub上提出issue或联系Qiscus支持团队。
希望本文对您有所帮助,祝您开发顺利! 🚀👨💻👩💻
图1: Qiscus SDK用户认证流程