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

安全管控

协作中台 SDK 支持安全管控的集成,安全管控功能如下:

  • 支持对图片、视频、相机等预览入口进行人为管控,用于企业的安全管理
  • 支持当APP管控状态变更时,能够通知SDK管控当前页面,满足多种复杂安全管控场景

接口定义

KIMSafetyControlPublicCapability:

方法参数返回值说明
willOpenLocalFile(callback: @escaping (Bool) -> Void)
  • callback:是否允许打开本地文件预览回调
void   
  • 管控所有本地文件打开预览的入口
  • 点击本地文件调用管控接口,由APP(sdk的使用者)决定是否进入本地文件预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面.(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenLocalFileManager(callback: @escaping (Bool) -> Void)
  • callback:是否允许打开本地文件管理器回调
void   
  • 管控所有文件管理器调用的入口
  • 点击文件管理器调用管控接口,由APP(sdk的使用者)决定是否进入文件管理器预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面.(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenImage(callback: @escaping (_ allow: Bool) -> Void)
  • callback:是否允许打开图片预览回调
void   
  • 管控所有图片预览的入口
  • 点击图片调用管控接口,由APP(sdk的使用者)决定是否进入图片预览。
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenVideo(callback: @escaping (Bool) -> Void)
  • callback:是否允许打开视频预览回调
void   
  • 管控所有视频预览的入口
  • 点击视频调用管控接口,由APP(sdk的使用者)决定是否进入视频预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenPhotoAlbum(callback: @escaping (Bool) -> Void)
  • callback:是否允许打开相册预览回调
void   
  • 管控所有相册预览的入口
  • 点击相册调用管控接口,由APP(sdk的使用者)决定是否进入相册预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenCamera(callback: @escaping (Bool) -> Void)
  • callback:是否允许打开相机回调
void   
  • 管控所有相机调用的入口
  • 点击相机调用管控接口,由APP(sdk的使用者)决定是否进入相机预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willPostProcessCapturedImage(image: UIImage, callback: @escaping (_ processedImage: UIImage) -> Void)
  • image:拍摄的照片
  • callback:发送处理后的照片回调
void   
  • 管控拍摄完成后的行为。
  • 点击相机后,在完成拍摄操作后,点击完成调用管控接口,由APP(sdk的使用者)决定是否对图片进行处理。
willOpenCloudFile(callback: @escaping (Bool) -> Void)
  • callback:是否允许打开云文档预览回调
void   
  • 管控所有云文档预览的入口
  • 点击云文档调用管控接口,由APP(sdk的使用者)决定是否进入云文档预览
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenWebView(url: String, callback: @escaping (Bool) -> Void)
  • url:当前将要打开的网页的url
  • callback:是否允许打开网页预览回调
void   
  • 管控所有网页预览调用的入口
  • 点击url链接调用管控接口,由APP(sdk的使用者)决定是否进入网页预览
  • 拦截到web内部跳转时调用管控接口。(如点击内嵌链接)
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
willOpenWebApp(appId: String, callback: @escaping (Bool) -> Void)
  • url:当前将要打开的应用的appId
  • callback:是否允许打开应用预览回调
void   
  • 管控所有应用预览调用的入口。
  • 点击应用时调用管控接口,由APP(sdk的使用者)决定是否进入应用。
  • 当预览页时,如果第三方APP收到管控状态改变,能够关闭当前页面。(场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,则关闭预览页面)
triggerSafeControlCheck()-void
  • 对外提供接口触发安全管控权限变更
  • 场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,调用该接口触发预览页面的关闭操作

代码示例

  1. 实现KIMSafetyControlPublicCapability协议,实现对应管控方法方法:
Swift
class UserCustomSafetyControl: KIMSafetyControlPublicCapability {

    func willOpenImage(callback: @escaping (_ allow: Bool) -> Void) {
        // 由用户自行决定是否有权限打开图片
        if allow {
            // 允许打开图片预览
            callback(true)
        } else {
            // 拦截图片打开预览
            callback(false)
            alert("安全管控:禁止打开图片")
        }
    }
    
    func willOpenVideo(callback: @escaping (Bool) -> Void) {
        ...
    }
    
    func willOpenCloudFile(callback: @escaping (Bool) -> Void) {
        ...
    }
    
    func willOpenPhotoAlbum(callback: @escaping (Bool) -> Void) {
        ...
    }
    
    func willOpenCamera(callback: @escaping (Bool) -> Void) {
        ...
    }
    
    func willOpenLocalFileManager(callback: @escaping (Bool) -> Void) {
        ...
    }
    
    func willOpenLocalFile(callback: @escaping (Bool) -> Void) {
        ...
    }
    
    func willOpenWebView(url: String, callback: @escaping (Bool) -> Void) {
        ...
    }    
}
  1. 当安全管控状态变更时,触发安全管控权限变更,检查当前页面的管控:
Swift
// 场景:预览时走出了园区或应用从后台进入前台时获取到管控状态为不允许查看,调用该接口触发预览页面的关闭操作
KIM.shared.triggerSafeControlCheck()