快速集成
本教程是为了让新手快速了解WPS协作中台。在本教程中,你可以体验集成协作中台SDK的基本流程和协作中台提供的 UI 界面。
环境要求
名称 | 版本 |
---|---|
Java | 11 |
AGP | 4.2.0 + |
Gradle | 6.7.1 + |
支持的最低系统版本为 5.0(API 21):
minSdkVersion 21
目标 Android SDK 版本:
targetSdkVersion 30
Demo体验
协作中台为您提供SDK Demo源码,可以运行安装Demo,快速了解和体验协作中台SDK提供的多项服务能力,如会话,文档,工作台,通讯录等。
运行步骤
通过官方获取到 WOASDKDemo 源码。
使用Android Studio打开 WOASDKDemo 工程。
点击Sync Project。
点击运行按钮。
Demo效果展示





集成SDK
步骤1: 导入SDK
你可以使用以 Android 本地仓库的形式导入本地依赖项。
SDK 以 zip 包的形式提供,下载后,会得到一份 Sample 源码,以及 repo.zip. 将解压的 repo 文件夹放到工程根目录中。repo 包含 SDK 所需的依赖库 【禁止调整包内文件的结构与命名,将会导致集成依赖不正常】
环境配置
Android Studio 的代码库配置在 Gradle 插件 7.0 以下版本、7.0 及以上版本有所不同。请根据您当前的 Gradle 插件版本,选择对应的配置过程。
7.0 以下版本
- 打开根目录下的
build.gradle
(Project 视图下)添加如下配置。
buildscript {
repositories {
// 本地仓库
maven { url "${rootProject.getRootDir()}/repo" }
//Huawei官方maven仓库,华为离线推送
maven { url 'https://developer.huawei.com/repo/' }
//个推官方maven仓库,个推离线推送
maven { url "https://mvn.getui.com/nexus/content/repositories/releases/" }
//荣耀官方maven仓库,荣耀离线推送
maven { url 'https://developer.hihonor.com/repo/' }
maven { url 'https://maven.aliyun.com/repository/google' }// 可选配置
maven { url 'https://maven.aliyun.com/repository/public' }// 可选配置
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }// 可选配置
maven { url 'https://jitpack.io' }// 可选配置
...
}
dependencies {
classpath 'com.android.tools.build:gradle:{version}' // 最低版本要求 4.2.0
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:{version}' // 最低版本要求 1.6.20
// 华为离线推送
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
}
}
allprojects {
repositories {
// 本地仓库
maven { url "${rootProject.getRootDir()}/repo" }
//Huawei官方maven仓库,华为离线推送
maven { url 'https://developer.huawei.com/repo/' }
//个推官方maven仓库,个推离线推送
maven { url "https://mvn.getui.com/nexus/content/repositories/releases/" }
//荣耀官方maven仓库,荣耀离线推送
maven { url 'https://developer.hihonor.com/repo/' }
maven { url 'https://maven.aliyun.com/repository/google' }// 可选配置
maven { url 'https://maven.aliyun.com/repository/public' }// 可选配置
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }// 可选配置
maven { url 'https://jitpack.io' }// 可选配置
...
}
}
- 在应用的
build.gradle
中,添加编译配置项和 SDK 依赖
android {
buildToolsVersion "30.0.3"
defaultConfig {
minSdkVersion 21
targetSdkVersion 29
manifestPlaceholders = [
GETUI_APPID : "请填写您的个推APP ID",
MEIZU_APPKEY: "请填写您的魅族APP KEY",
MEIZU_APPID : "请填写您的魅族APP ID",
AMAP_API_KEY: "请填写您的高德API_KEY",
VIVO_APP_ID : "请填写您的VIVO APP_ID",
VIVO_API_KEY: "请填写您的VIVO API_KEY",
]
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
viewBinding true
dataBinding true
}
}
dependencies {
...
// repo/com/kingsoft/kim/sdk/woasdk下目录文件名即为版本号, 使用版本号替换$latestVersion
api 'com.kingsoft.kim.sdk:woasdk:$latestVersion'
api 'com.wps.woa.sdk:image-glide4wrap:1.0.13'
// 以下按需依赖不同厂商的推送SDK
api 'com.wps.woa.sdk:pushHuawei:0.0.7'
api 'com.wps.woa.sdk:pushOppo:0.0.7'
api 'com.wps.woa.sdk:pushVivo:0.0.7'
api 'com.wps.woa.sdk:pushXiaomi:0.0.9'
api 'com.wps.woa.sdk:pushHonor:0.0.4'
api 'com.wps.woa.sdk:pushMeizu:0.0.6'
api 'com.wps.woa.sdk:pushGetui:0.0.4'
}
- 在项目中使用 androidx 库
android.useAndroidX=true
android.enableJetifier=true
7.0 及以上版本
- 打开根目录下的
settings.gradle
(Project 视图下)添加如下配置。
pluginManagement {
repositories {
// 本地仓库
maven { url "${rootProject.getRootDir()}/repo" }
//Huawei官方maven仓库,华为离线推送
maven { url 'https://developer.huawei.com/repo/' }
//个推官方maven仓库,个推离线推送
maven { url "https://mvn.getui.com/nexus/content/repositories/releases/" }
//荣耀官方maven仓库,荣耀离线推送
maven { url 'https://developer.hihonor.com/repo/' }
maven { url 'https://maven.aliyun.com/repository/google' }// 可选配置
maven { url 'https://maven.aliyun.com/repository/public' }// 可选配置
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }// 可选配置
maven { url 'https://jitpack.io' }// 可选配置
...
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
// 本地仓库
maven { url "${rootProject.getRootDir()}/repo" }
//Huawei官方maven仓库,华为离线推送
maven { url 'https://developer.huawei.com/repo/' }
//个推官方maven仓库,个推离线推送
maven { url "https://mvn.getui.com/nexus/content/repositories/releases/" }
//荣耀官方maven仓库,荣耀离线推送
maven { url 'https://developer.hihonor.com/repo/' }
maven { url 'https://maven.aliyun.com/repository/google' }// 可选配置
maven { url 'https://maven.aliyun.com/repository/public' }// 可选配置
maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }// 可选配置
maven { url 'https://jitpack.io' }// 可选配置
...
}
}
- 打开根目录下的
build.gradle
(Project 视图下)添加如下配置。
buildscript {
dependencies {
// 增加Android Gradle插件版本号配置,{version}为实际的Gradle插件版本号
classpath 'com.android.tools.build:gradle:{version}'
// 华为离线推送
classpath 'com.huawei.agconnect:agcp:1.6.0.300'
...
}
}
plugins {
id 'org.jetbrains.kotlin.android' version '{version}' apply false // kotlin-gradle插件版本,与相应Gradle版本匹配
...
}
- 在应用的
build.gradle
中,添加编译配置项和 SDK 依赖
plugins {
...
// 华为离线推送插件
id 'com.huawei.agconnect'
}
android {
defaultConfig {
...
minSdk 21
targetSdk 29
manifestPlaceholders = [
GETUI_APPID : "请填写您的个推APP ID",
MEIZU_APPKEY: "请填写您的魅族APP KEY",
MEIZU_APPID : "请填写您的魅族APP ID",
AMAP_API_KEY: "请填写您的高德API_KEY",
VIVO_APP_ID : "请填写您的VIVO APP_ID",
VIVO_API_KEY: "请填写您的VIVO API_KEY",
]
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
buildFeatures {
viewBinding true
dataBinding true
}
}
dependencies {
...
// repo/com/kingsoft/kim/sdk/woasdk下目录文件名即为版本号, 使用版本号替换$latestVersion
api 'com.kingsoft.kim.sdk:woasdk:$latestVersion'
api 'com.wps.woa.sdk:image-glide4wrap:1.0.13'
// 以下按需依赖不同厂商的推送SDK
api 'com.wps.woa.sdk:pushHuawei:0.0.7'
api 'com.wps.woa.sdk:pushOppo:0.0.7'
api 'com.wps.woa.sdk:pushVivo:0.0.7'
api 'com.wps.woa.sdk:pushXiaomi:0.0.9'
api 'com.wps.woa.sdk:pushHonor:0.0.4'
api 'com.wps.woa.sdk:pushMeizu:0.0.6'
api 'com.wps.woa.sdk:pushGetui:0.0.4'
}
- 在项目中使用 androidx 库
android.useAndroidX=true
android.enableJetifier=true
步骤2: 初始化
获取 App Key, 并在程序 application 启动时进行初始化,可以在这里进行全局设置,如设置会话列表,消息列表 UI 样式,在线通知配置,网络环境设置等。
KIM.init(application: Application, appKey: String, config: KIMInitConfig)
集成 SDK 需要进行网络环境配置,请按照以下配置项进行网络环境配置。
网络环境配置项 | 说明 |
---|---|
isV7 | 是否使用 V7 接口,false 表示使用 V6 接口(若无特别说明,请使用V7接口) |
SDK 提供接口设置 productName 占位字符串,productName 通常用于标识您的产品信息,比如分享群聊到“金山协作”,如果您想将“金山协作”替换为您自己的 app 名称,可以通过KIMInitConfig
接口设置。
KIM.init(application, AK, KIMInitConfig().apply {
entryJsonUrl = "$yourUrl"
isV7 = true
appDisplayName = "$yourAppName"
options = getConfig(application) //初始化页面配置
})
步骤3: 登录连接
未登录情况下,先调用授权码登录接口进行登录激活。
a. 开发者需在企业后台完成 SSO 认证配置,获取得到 APP_ID。配置流程详见SSO 登录。
b. 用户从自身业务服务接口中获取授权码 AUTH_CODE。注意 AUTH_CODE 通常具有时效性。
KIM.getControl().login(APP_ID, AUTH_CODE,object : KIMCore.ConnectCallback {
override fun onSuss() {
}
override fun onFail(reason: String?) {
}
})
步骤4: 页面集成
完成登录后,可进入到会话列表,消息列表,文档列表,工作台等页面。
会话页面
在连接成功后可跳转至 SDK 会话列表页。
KIM.getService().goPage(KIMChatListFragment::class.java.getPageName(), this, Bundle())
聊天页面
点击会话列表的某条会话时,可跳转至 SDK 聊天页面。
val args = KIMMessageListFragment.defaultArguments(chatId, chatName, null)
KIM.getService().goPage(KIMMessageListFragment::class.java.getPageName(), context, args)
文档页面
连接成功后,可以进入文档主页,使用文档列表,预览文档,编辑文档等功能。
KIM.getService().goPage(KIMDocumentTabFragment::class.java.getPageName(), this, Bundle())
工作台页面
连接成功后,可以进入工作台页面,工作台页面展示应用列表,可以点击应用进入应用详情ß页,使用到各个应用功能。
KIM.getService().goPage(KIMContactsFragment::class.java.getPageName(), this, Bundle())