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

安全管控

快速上手

接口定义

KIMExpInterceptor:

方法参数返回值说明
willOpenLocalFileOpenLocalFileChain-    
  • 管控所有本地文件打开预览的入口
  • 点击本地文件调用管控接口,由APP(sdk的使用者)决定是否进入本地文件预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面.(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenLocalFileManagerOpenLocalFileManagerChain-
  • 管控所有文件管理器调用的入口
  • 点击文件管理器调用管控接口,由APP(sdk的使用者)决定是否进入文件管理器预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面.(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenImageOpenImageChain-
  • 管控所有图片预览的入口
  • 点击图片调用管控接口,由APP(sdk的使用者)决定是否进入图片预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenVideoOpenVideoChain-
  • 管控所有视频预览的入口
  • 点击视频调用管控接口,由APP(sdk的使用者)决定是否进入视频预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenPhotoAlbumOpenPhotoAlbumChain-
  • 管控所有相册预览的入口
  • 点击相册调用管控接口,由APP(sdk的使用者)决定是否进入相册预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenCameraOpenCameraChain-
  • 管控所有相机调用的入口
  • 点击相机调用管控接口,由APP(sdk的使用者)决定是否进入相机预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willPostProcessCapturedImagePostProcessCapturedImageChain-
  • 管控拍摄/录屏完成后的行为
  • 点击相机后,在完成拍摄/录屏操作后,点击完成调用管控接口,由APP(sdk的使用者)决定是否发送或对图片进行处理。
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenCloudFileOpenCloudFileChain-
  • 管控所有云文档预览的入口
  • 点击云文档调用管控接口,由APP(sdk的使用者)决定是否进入云文档预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willLoadUrlLoadUrlChain-
  • 管控所有网页预览调用的入口
  • 点击url链接调用管控接口,由APP(sdk的使用者)决定是否进入网页预览
  • 拦截到web内部跳转时调用管控接口。(如点击内嵌链接)
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willChangeForegroundStateChangeForegroundStateChain-
  • 管控所有页面显示(打开)在屏幕上的入口
  • APP进入某一个管控页面调用管控接口,由APP(sdk的使用者)决定是否进入打开(预览)该页面。
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)

代码示例

  1. 继承KIMExpInterceptor,实现对应管控方法方法:
Kotlin
class CustomInterceptor : KIMExpInterceptor() {

    override fun willOpenLocalFile(chain: OpenLocalFileChain) {
        val isIntercept = DemoCustomizeConfig.instance.isIntercept()
        val request = chain.request()
        if (!isIntercept) {
            chain.doNext()
        } else {
            // 
            WToastUtil.show(R.string.security_control_intercept_message)
            chain.abort()
        }
    }

    override fun willOpenLocalFileManager(chain: OpenLocalFileManagerChain) {
        ...
    }

    override fun willOpenImage(chain: OpenImageChain) {
        ...
    }

    override fun willOpenVideo(chain: OpenVideoChain) {
        ...
    }

    override fun willOpenPhotoAlbum(chain: OpenPhotoAlbumChain) {
       ...
    }

    override fun willOpenCamera(chain: OpenCameraChain) {
        ...
    }

    override fun willPostProcessCapturedImage(chain: PostProcessCapturedImageChain) {
        ...
    }

    override fun willOpenCloudFile(chain: OpenCloudFileChain) {
        ...
    }

    override fun willLoadUrl(chain: LoadUrlChain) {
        ...
    }

    private fun convertUrl(url: String?): String? {
        ...
    }

    override fun willChangeForegroundState(chain: ChangeForegroundStateChain){
        ...
    }
}

注册自定义实现

  1. 实现KIMSdkApplication,并注册自定义实现:
Kotlin
class AppCustomizeApplication : KIMSdkApplication() {
    override fun confMeatsOnBone(): KConf<Meat> {
        return kConfOf(
            // 注册自定义安全管控拦截器
            KIMExpInterceptor.class.java confTo CustomInterceptor::class.java,
    
            ...
        )
    }
}
  1. AndroidManifest中声明:
Kotlin
<meta-data
   android:name="{your-package-name}.AppCustomizeSdkApplication"
   android:value="@string/kim_sdk_application" />