1. Q:如何集成到现有项目?
1.1. 前置条件
请先参考快速开始部分,完成部署,并对各个功能进行体验,以便对整个IM系统有个大概的了解。
从0.8.0.rc
版本开始,野火IM Android端支持将通用UIuikit
以library moduel
的方式集成。
1.2. 源码集成
- 下载
android-chat
项目 - 打开你自己的项目,Android Studio -> File -> New -> Import Module... 选择
android-chat/uikit
,导入。 - 打开你自己的项目,Android Studio -> File -> New -> Import Module... 选择
android-chat/push
,导入。 - 在你自己项目根目录下的
build.gradle
文件的dependencies
块内添加classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.1'
- 在你自己项目的
app module
下的build.gradle
文件的dependencies
块内添加implementation project(':uikit')
;android
块内添加compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
- 修改
cn.wildfire.chat.kit.Config.java
完成配置 - 参考demo,demo相当于是把
uikit
集成到了chat
,遇到注释,请仔细阅读
1.3. aar方式集成
- 下载
android-chat
,自行编译生成uikit.aar
- Android Studio -> File -> New -> New Module... -> Import .JAR/.AAR Package -> 选择
uikit.aar
,并设置Subproject name - 由于
Config.java
被打包到了aar文件,不能直接修改,需要在调用WfcUIKit#init
之前,对相关字段进行赋值,参考如下:Config.IM_SERVER_HOST = "im.example.com"; ...
- 参考demo,demo相当于是把
uikit
集成到了chat
,遇到注释,请仔细阅读
1.4. 针对0.8.0之前的版本
这是针对0.8.0版本之前的集成方式,新版本已不适用。
由于野火IM自定义的注解中,使用到了R.xx.yyy等常量,导致野火IM kit不能作为一个library
引入现有项目。
在此提供两种集成思路,各位开发者,可以根据自身情况进行选择。
以野火IM项目为base,将自有项目集成到野火IM项目。
以自有项目为base,将野火IM项目集成到自有项目。
1.4.1. 以野火IM作为base,将自有项目集成到野火IM项目
适用场景
- 项目新启动,直接以野火IM作为base
- 项目除IM之外功能较少,可很方便地将相关代码加入到野火IM项目中
集成步骤
- 根据实际情况修改
application_id
,如果想快速修改的话,只需修改chat/build.gradle#android#default#applicationId
- 自行生成签名,并根据实际情况修改
chat/build.gradle#android#signingConfigs
,生成签名可参考 - 修改推送项目配置,参考push-server
- 将项目相关代码添加到
chat/src
目录下
1.4.2. 以自有项目为base,将野火IM项目集成到自有项目
适用场景
- 项目已积累大量代码
- IM只是 项目的一个小功能
集成步骤
下载野火IM项目,
将
client
,push
,mars-core-release
,emojilibrary
,imagepicker
,avenginekit
作为library module
引入将
chat/kit
目录拷贝到自有项目applicaiton module
下面将
kit
目录添加到自有项目application module
的sourceSets
,如下:sourceSets { main { // wfc kit start jniLibs.srcDirs += ['kit/libs'] res.srcDirs += ['kit/src/main/res', 'kit/src/main/res-av'] assets.srcDirs += ['kit/src/main/assets'] java.srcDirs += ['kit/src/main/java'] // wfc kit end }
将
kit/src/main/AndroidManifest.xml
中相关部分拷贝到自有项目applicaiton module
的AndroidManifest.xml
当中