快速集成

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

环境要求

rc_5.36及以下版本

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

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

minSdkVersion 21

目标 Android SDK 版本:

targetSdkVersion 30

rc_5.37及以上版本

名称版本
Java17
AGP8.6.0 +
Gradle8.7.0 +

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

minSdkVersion 21

目标 Android SDK 版本:

targetSdkVersion 35

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 视图下)添加如下配置。

code-group

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 依赖

code-group

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 库

code-group

groovy
android.useAndroidX=true
android.enableJetifier=true
7.0 及以上版本
  1. 打开根目录下的 settings.gradle(Project 视图下)添加如下配置。

code-group

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 视图下)添加如下配置。

code-group

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 依赖

code-group

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 库

code-group

groovy
android.useAndroidX=true
android.enableJetifier=true

步骤2: 初始化

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

code-group

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

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

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

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

code-group

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 通常具有时效性。

code-group

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

    override fun onFail(reason: String?) {
    }

})

步骤4: 页面集成

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

会话页面

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

code-group

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

聊天页面

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

code-group

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

文档页面

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

code-group

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

工作台页面

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

code-group

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