Skip to content
能力中心
产品中心
应用市场
WebOffice
开发者后台

快速集成

本教程是为了让新手快速了解WPS协作中台。在本教程中,你可以体验集成协作中台SDK的基本流程和协作中台提供的 UI 界面。

环境要求

名称版本
Java11
AGP4.2.0 +
Gradle6.7.1 +

支持的最低系统版本为 5.0(API 21):

minSdkVersion 21

目标 Android SDK 版本:

targetSdkVersion 30

Demo体验

协作中台为您提供SDK Demo源码,可以运行安装Demo,快速了解和体验协作中台SDK提供的多项服务能力,如会话,文档,工作台,通讯录等。

运行步骤

  1. 通过官方获取到 WOASDKDemo 源码。

  2. 使用Android Studio打开 WOASDKDemo 工程。

  3. 点击Sync Project。

  4. 点击运行按钮。

Demo效果展示


集成SDK

步骤1: 导入SDK

你可以使用以 Android 本地仓库的形式导入本地依赖项。

SDK 以 zip 包的形式提供,下载后,会得到一份 Sample 源码,以及 repo.zip. 将解压的 repo 文件夹放到工程根目录中。repo 包含 SDK 所需的依赖库 【禁止调整包内文件的结构与命名,将会导致集成依赖不正常】

环境配置

Android Studio 的代码库配置在 Gradle 插件 7.0 以下版本、7.0 及以上版本有所不同。请根据您当前的 Gradle 插件版本,选择对应的配置过程。

7.0 以下版本
  1. 打开根目录下的 build.gradle(Project 视图下)添加如下配置。
groovy
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' }// 可选配置

        ...
    }
}
  1. 在应用的 build.gradle 中,添加编译配置项和 SDK 依赖
groovy
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'
}
  1. 在项目中使用 androidx 库
groovy
android.useAndroidX=true
android.enableJetifier=true
7.0 及以上版本
  1. 打开根目录下的 settings.gradle(Project 视图下)添加如下配置。
groovy
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' }// 可选配置
        ...
    }
}
  1. 打开根目录下的 build.gradle(Project 视图下)添加如下配置。
groovy
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版本匹配
    ...
}
  1. 在应用的 build.gradle 中,添加编译配置项和 SDK 依赖
groovy
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'
}
  1. 在项目中使用 androidx 库
groovy
android.useAndroidX=true
android.enableJetifier=true

步骤2: 初始化

获取 App Key, 并在程序 application 启动时进行初始化,可以在这里进行全局设置,如设置会话列表,消息列表 UI 样式,在线通知配置,网络环境设置等。

kotlin
KIM.init(application: Application, appKey: String, config: KIMInitConfig)

集成 SDK 需要进行网络环境配置,请按照以下配置项进行网络环境配置。

网络环境配置项说明
isV7是否使用 V7 接口,false 表示使用 V6 接口(若无特别说明,请使用V7接口)

SDK 提供接口设置 productName 占位字符串,productName 通常用于标识您的产品信息,比如分享群聊到“金山协作”,如果您想将“金山协作”替换为您自己的 app 名称,可以通过KIMInitConfig 接口设置。

kotlin
KIM.init(application, AK, KIMInitConfig().apply {
    entryJsonUrl = "$yourUrl"
    isV7 = true
    appDisplayName = "$yourAppName"
    options = getConfig(application) //初始化页面配置
})

步骤3: 登录连接

  1. 未登录情况下,先调用授权码登录接口进行登录激活。

    a. 开发者需在企业后台完成 SSO 认证配置,获取得到 APP_ID。配置流程详见SSO 登录

    b. 用户从自身业务服务接口中获取授权码 AUTH_CODE。注意 AUTH_CODE 通常具有时效性。

kotlin
KIM.getControl().login(APP_ID, AUTH_CODE,object : KIMCore.ConnectCallback {
    override fun onSuss() {
    }

    override fun onFail(reason: String?) {
    }

})

步骤4: 页面集成

完成登录后,可进入到会话列表,消息列表,文档列表,工作台等页面。

会话页面

在连接成功后可跳转至 SDK 会话列表页。

kotlin
KIM.getService().goPage(KIMChatListFragment::class.java.getPageName(), this, Bundle())

聊天页面

点击会话列表的某条会话时,可跳转至 SDK 聊天页面。

kotlin
val args = KIMMessageListFragment.defaultArguments(chatId, chatName, null)
KIM.getService().goPage(KIMMessageListFragment::class.java.getPageName(), context, args)

文档页面

连接成功后,可以进入文档主页,使用文档列表,预览文档,编辑文档等功能。

kotlin
KIM.getService().goPage(KIMDocumentTabFragment::class.java.getPageName(), this, Bundle())

工作台页面

连接成功后,可以进入工作台页面,工作台页面展示应用列表,可以点击应用进入应用详情ß页,使用到各个应用功能。

kotlin
KIM.getService().goPage(KIMContactsFragment::class.java.getPageName(), this, Bundle())