java融云即时通开发流程,基于融云开发的 Android 版即时通讯(IM)应用程序

SealTalk-Android

Android 应用 SealTalk 由 融云 RongCloud 出品。

特别注意

SealTalk 自从 1.3.14 版本起,CallLib 模块引用的音视频引擎已替换成 RTC 3.0,与之前的版本不互通。详细内容请参考官网的

特点

Android iOS Web 多端互通,如果需要你的产品也可以这样实现。

地理位置,位置共享功能。

完整的好友体系代码示例。

完整的群组功能代码示例。

单聊,群组,聊天室多种社交场景满足你的需求,如果还想要 视频直播 都可以。

一行代码搞定 客服? 你没有听错,比你想象的还要简单。

运行 SealTalk-Android

替换 SealTalkUrl.java 中的 DOMAIN 常量值为您所部署的 SealTalk 服务地址。

public class SealTalkUrl {

public static final String DOMAIN = 这里请替换为您所部署的 SealTalk Server 地址;

替换 IMManager.java 中,init 方法中调用融云初始化的代码 RongIM.init 替换为您所申请的融云 AppKey。

private void initRongIM(Context context) {

...

// 可在初始 SDK 时直接带入融云 IM 申请的APP KEY

RongIM.init(context, 这里请替换为您的融云 AppKey, true);

若使用第三方推送,请参考 IMManager.java 中 initPush 方法,打开注释并替换成您申请的各平台的推送信息

/**

* 初始化推送

*/

private void initPush() {

/*

* 配置 融云 IM 消息推送

* 根据需求配置各个平台的推送

* 配置推送需要在初始化 融云 SDK 之前

*/

//PushConfig config = new PushConfig

// .Builder()

// .enableHWPush(true) // 在 AndroidManifest.xml 中搜索 com.huawei.hms.client.appid 进行设置

// .enableMiPush("替换为您的小米推送 AppId", "替换为您的小米推送 AppKey")

// .enableMeiZuPush("替换为您的魅族推送 AppId", "替换为您的魅族推送 AppKey")

// .enableVivoPush(true) // 在 AndroidManifest.xml 中搜索 com.vivo.push.api_key 和 com.vivo.push.app_id 进行设置

// .enableFCM(true) // 打开 build.gradle 和 AndroidManifest.xml 中的相关注释,并在 google-services.json 文件中进行配置

// .build();

//RongPushClient.setPushConfig(config);

}

若您要接入 FCM 推送,需要做以下几步工作:

打开 AndroidManifest.xml 解除掉以下注释。

在 build.gradle 中解除以下注释

//apply plugin: 'com.google.gms.google-services'

...

//api 'com.google.firebase:firebase-messaging:17.6.0'

...

*

编译 google-services.json 配置为您的 FCM 推送相关配置参数

若使用地图相关功能,在 AndroidManifest.xml 中搜索 com.amap.api.v2.apikey 修改为您的高德地图 ApiKey

若使用微信相关功能,请替换 WXManager.java 中 APP_ID 为您申请的 AppId

public class WXManager {

private static final String TAG = "WXManager";

private static final String APP_ID = "替换为您的微信开放平台 AppId";

备注:

SealTalk Server 源码可以参考这里

Gif

新增红包

fb6e7b725afce95148cbe35cfe3878d9.gif

强大的全局搜索

search.gif

单人、多人音视频

audio_video.gif

客服/机器人服务

customer_service.gif

群组

group.gif

APK

SDK 集成说明

关于 SealTalk 2.0

SealTalk 2.0 重构了内部逻辑实现,整体代码将更清晰易读。使用 LiveData + ViewModel + Retrofit 2.0 + Room 等框架基于 MVVM 模式进行开发。

由于 DataBinding 存在调试难, 并要在 XML 编写等问题, 所以经过讨论之后, 决定弃用DataBinding.

架构图 sealtalk-mvvm.png

Ativity/Fragment 作为 View 层, 负责界面显示和事件交互.

UserInfoViewModel 等为 ViewModel 层. 连接 View 和 Model 的桥梁, 数据通过 LiveData 返回. ViewModel 可通过调用不同的 Task 来获取不同的数据源.

Task 层即为 Repository . 根据不同的接口或数据属性, 分别封装了不同的 Task, 例如关于 User 的数据操作就封装在了 UserTask 中. 这样功能模块职能清晰并复用性高. 所有数据请求等只需编写一次即可.

Service 和 Dao 是分别请求网络数据和数据库数据操作. 分别使用了 Retrofit 和 Room 的依赖库.

数据请求流程

在新版中也对数据的请求机制做了信息设计处理. 请求数据分为三种.

网络请求需要缓存的

网络请求且不需要缓存的

数据库直接查询的

需要网络请求并需要缓存的 data-net-database.png

在 Task 层首先会查询数据库, 然后返回当前数据库中的缓存数据, 此数据用于请求网络时, 页面友好展示. 然后再请求服务器,获取最新数据, 获取数据成功后会把新数据保存至数据库, 最后再进行一次数据库查询, 获取数据库中的最新数据. 此机制虽然烦琐, 但极大的保证了界面展示的数据于最新数据的一致性.

网络请求且不需要缓存的 data-net.png

Task 直接进行网络请求并返回数据.

数据库直接查询的

data-database.png

运行环境

Android Studio 3.2 以上版本 SealMic 适配了 Android X,所以需要 使用 3.2 以上版本的 Android Studio 才能保证可以正常编译和使用。代码中有地方可能报红色错误, 不影响编译运行. 推荐使用真实 Android 设备 部分模拟器会存在功能缺失或运行环境不稳定等情况影响使用体验。

TargetVersion 版本需 26 及以上版本

支持

比你想象的更强大, 敬请期待更多精彩!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值