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

工作台数据接口

获取工作台 Banner 信息

获取工作台展示的 Banner 数据。

接口定义

swift
func getBannerList(
    _ completion: ((KIMBannerData?, KIMError?) -> Void)? = nil
)
Objective-C
- (void)getBannerListWithCompletion:(void (^)(KIMBannerData *bannerData, KIMError *error))completion;

参数说明

参数类型说明
completion((KIMBannerData?, KIMError?) -> Void)?请求完成的回调方法。

代码示例

swift
KIM.workSpaceModule.getBannerList { bannerData, error in
    /// 显示 banner 数据。
}
Objective-C
[[KIM workSpaceModule] getBannerListWithCompletion:^(KIMBannerData *bannerData, KIMError *error) {
    /// 显示 banner 数据。
}];

获取应用列表

获取工作台应用列表。

接口定义

swift
public static func getAppList(
    type: KIMAppListType,
    offset: Int,
    count: Int,
    completion: ((KIMAppBriefData?, KIMError?) -> Void)? = nil
)
Objective-C
+ (void)getAppListWithType:(KIMAppListType)type 
                    offset:(NSInteger)offset 
                     count:(NSInteger)count 
                completion:(void (^)(KIMAppBriefData *appBriefData, KIMError *error))completion

参数说明

参数类型说明
typeKIMAppListType请求的 app 列表类型
offsetInt列表偏移量
countInt请求的 app 数量
completion((KIMAppBriefData?, KIMError?) -> Void)?请求完成后的回调方法

代码示例

swift
KIM.workSpaceModule.getAppList(type: .offical, offset: 0, count: 100) { [weak self] data, error in
    /// 显示应用列表
}
Objective-C
[[KIM workSpaceModule] getAppListWithType:KIMAppListTypeOffical 
                                offset:0 
                                 count:100 
                            completion:^(KIMAppBriefData *data, KIMError *error) {
    /// 显示应用列表
}];

获取应用分组列表

获取全部应用的分组信息。

接口定义

swift
func getAppGroupList(completion: (([KIMAppGroupData]) -> Void)?)
Objective-C
- (void)getAppGroupListWithCompletion:(void (^)(NSArray<KIMAppGroupData *> *))completion

参数说明

参数类型说明
completion(([KIMAppGroupData]) -> Void)?请求完成的回调方法。

代码示例

swift
KIM.workSpaceModule.getAppGroupList { groups in
    /// 显示分组数据
}
Objective-C
[[KIM workSpaceModule] getAppGroupList:^(NSArray *groups) {
    /// 显示分组数据
}];

获取指定分组下的应用列表

获取指定分组下的应用信息。

接口定义

swift
public static func getAppListByGroupId(
    groupID: Int,
    offset: Int,
    count: Int,
    completion: ((_ data: KIMAppBriefData?, _ error: KIMError?) -> Void)?
)
Objective-C
+ (void)getAppListByGroupIdWithGroupID:(NSInteger)groupID 
                                offset:(NSInteger)offset 
                                 count:(NSInteger)count 
                            completion:(void (^)(KIMAppBriefData *data, KIMError *error))completion

参数说明

参数类型说明
groupIdInt分组 ID
offsetInt列表索引偏移值,用于分页加载。如每页获取 100 条数据,则获取第二页是传 100
countInt分页拉取每页数量,最大值 100
completion((_ data: KIMAppBriefData?, _ error: KIMError?) -> Void)?请求完成的回调方法

代码示例

swift
KIM.workSpaceModule.getAppListByGroupId(
    groupID: groupID,
    offset: 0,
    count: 100
) {
    /// 显示应用数据
}
Objective-C
[[KIM workSpaceModule] getAppListByGroupIdWithGroupID:groupID 
                                            offset:0 
                                             count:100 
                                        completion:^(KIMAppBriefData *data, KIMError *error) {
    /// 显示应用数据
}];

应用设置、取消常用

将应用设置为常用或取消常用。

接口定义

swift
func setAppFavorite(
    appID: String,
    isFavorite: Bool,
    completion: ((_ isSuccess: Bool, _ error: KIMError?) -> Void)?
)
Objective-C
- (void)setAppFavoriteWithAppID:(NSString *)appID 
                    isFavorite:(BOOL)isFavorite 
                    completion:(void (^)(BOOL isSuccess, KIMError *error))completion

参数说明

参数类型说明
appIDString应用 ID
isFavoriteBooltrue 为添加常用;false 为取消常用;
completion((_ isSuccess: Bool, _ error: KIMError?) -> Void)?请求完成的回调方法

代码示例

swift
KIM.workSpaceModule.setAppFavorite(
    appID: appID,
    isFavorite: openAppModel.favoriteStatus == .uncollected
) { isSuccess, error in
    /// 刷新UI
}
Objective-C
[[KIM workSpaceModule] setAppFavoriteWithAppID:appID 
                                 isFavorite:(openAppModel.favoriteStatus == uncollected) 
                                 completion:^(BOOL isSuccess, KIMError *error) {
    /// 刷新UI
}];

下载工作台应用离线包

接口定义

swift
func downloadPackage(
    appId: String,
    version: String? = nil
) -> KIMAppPackageDownloadTask
Objective-C
- (KIMAppPackageDownloadTask *)downloadPackageWithAppId:(NSString *)appId version:(NSString *)version;

参数说明

参数类型说明
appIdString要下载的离线包对应的应用ID。
versionString?要下载的离线包指定版本,不传则为最新版本。

KIMAppPackageDownloadTask 说明:

属性/方法类型说明
delegateKIMAppPackageDownloadTaskDelegate?监听下载进度,下载结果,以及下载错误。
cancel取消当前的下载任务。

KIMAppPackageDownloadTaskDelegate 说明:

方法参数返回值说明
appPackageDownload
(_:downloadedBytes:totalBytes:)
• appPackageDownloadTask: KIMAppPackageDownloadTask
当前下载任务。
• downloadedBytes: Int
已经下载的字节数。
• totalBytes: Int
总字节数。
Void下载进度回调方法。
appPackageDownload(_:success:)• appPackageDownloadTask: KIMAppPackageDownloadTask
当前下载任务。
• url: URL
下载后的临时文件位置。
Void下载完成后的回调方法。
appPackageDownload(_:failed:)• appPackageDownloadTask: KIMAppPackageDownloadTask
当前下载任务。
• error: KIMError
错误信息。
Void下载错误的回调方法。

代码示例

swift
class ViewController: UIViewController {
    var task: KIMAppPackageDownloadTask?

    func download() {
        task = KIM.workSpaceModule.downloadPackage(appId: appID, version: appVersionTextField.text)
        task?.delegate = self
    }
}

extension ViewController: KIMAppPackageDownloadTaskDelegate {

    func appPackageDownload(_ appPackageDownloadTask: WOASDK.KIMAppPackageDownloadTask, downloadedBytes: Int, totalBytes: Int) {
        let downloaded = fmt.string(fromByteCount: Int64(downloadedBytes))
        let total = fmt.string(fromByteCount: Int64(totalBytes))
        print("下载中:\(downloaded) / \(total)")
    }
    
    func appPackageDownload(_ appPackageDownloadTask: WOASDK.KIMAppPackageDownloadTask, success url: URL) {
        let tempURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("\(UUID().uuidString).zip")
        try? FileManager.default.moveItem(at: url, to: tempURL)
        currentURL = tempURL
        print("下载完成:\(url.absoluteString)")
    }
    
    func appPackageDownload(_ appPackageDownloadTask: WOASDK.KIMAppPackageDownloadTask, failed error: KIMError) {
        let msg: String
        if let urlError = error.info?[NSUnderlyingErrorKey] as? URLError,
           case .notConnectedToInternet = urlError.code
        {
            msg = "当前网络已断开,请检查网络配詈"
        } else {
            msg = error.message ?? ""
        }
        print("下载错误:\(msg)")
    }
    
}