initSDK

接口描述

用于启动并初始化SDK。

注意事项

  1. 该接口用于启动并初始化SDK,在调用其他接口之前必须先调用该接口。
  2. 初始化方法必须在主线程调用。
  3. 该接口可能由于参数传错导致调用失败抛出异常。

接口定义

    initSDK(context: common.UIAbilityContext, sdkMode: SFSDKMode, sdkFlags: SFSDKFlags, extra: Map<SFSDKExtras, string>): void;

参数说明

表1 参数说明

参数 是否必须 类型 描述
context Context Context上下文信息
sdkMode SFSDKMode SDK模式选项(请看表2)
sdkFlags SFSDKFlags SDK基本配置选项(请看表3)
extra Map extra 额外配置,补充属性(请看表4),不传该参数,传null即可。

表2 枚举SFSDKMode说明

枚举值 描述
MODE_SUPPORT_MUTABLE SDK启动模式会根据配置变动 (鸿蒙暂不支持)
MODE_VPN SDK启用VPN接入功能 (鸿蒙暂时只支持此模式)
MODE_VPN_SANDBOX SDK启动VPN和安全沙箱功能 (已经废弃,不推荐使用)

MODE_SUPPORT_MUTABLE说明

使用场景

如果希望部分用户使用集成SDK的APP仅具备代理访问内网业务的能力,部分用户使用集成SDK的APP不仅具备代理访问内网业务的能力,并且还具备数据防泄密的能力,可以使用该模式。

授权占用

  1. 当集成SDK的APP在应用中心授权给用户,用户使用该APP便会以接入+安全沙箱模式运行,并且占用并发授权和UEM移动版授权;
  2. 当集成SDK的APP在应用中心未授权给用户,用户使用该APP便会以接入模式运行,并且占用并发授权;
  3. 当“高级设置”中未勾选“允许未授权用户以接入模式运行”时:
    • (1) 如果集成SDK的APP在应用中心未授权给用户,则用户无法通过该APP接入使用;
    • (2) 如果集成SDK的APP在应用中心授权给用户,则用户可以通过该APP接入使用,并且占用并发授权和UEM移动版授权。

注意

使用MODE_SUPPORT_MUTABLE模式会根据你当前服务端控制台的配置动态切换MODE_VPN和MODE_VPN_SANDBOX,开关说明说明:

如果勾选,表示当前sdk应用可以让未授权的用户以接入模式登录:当前开关功能仅在服务端版本2.2.10及以上版本支持

image-20210402102437940

表3:枚举SFSDKFlags说明
注意事项:flags可以使用位或"|"来同时指定多个flag,参考initSDK的使用示例

枚举值 描述
FLAGS_VPN_MODE_TCP TCP模式,当前必选。
FLAGS_HOST_APPLICATION 主应用模式,与子应用模式二选一。
FLAGS_SUB_APPLICATION 子应用模式,与主应用模式二选一(当前尚未支持)。
FLAGS_ENABLE_FILE_ISOLATION 启用文件加密隔离 (当前尚未支持

表4:额外参数extra说明(当前尚未支持

枚举值 描述
EXTRA_KEY_FILE_ISOLATION 设置文件加密隔离路径白名单。
EXTRA_KEY_HOSTAPP_PACKAGE_NAME 主应用包名,子应用模式使用,将主应用包名传入。

示例代码


    onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
        /**
         * SDK初始化
         */
        this.init();
    }

    init() {
        let extra: Map<SFSDKExtras, string>  = new Map<SFSDKExtras, string>();
        let sdkFlags: number = 0;
        sdkFlags = SFSDKFlags.FLAGS_HOST_APPLICATION;      //表明是单应用或者是主应用
        sdkFlags |= SFSDKFlags.FLAGS_VPN_MODE_TCP;         //表明使用VPN功能中的TCP模式

        SFUemSDK.getInstance().initSDK(
            this.context,
            SFSDKMode.MODE_VPN,
            sdkFlags, extra
        );
    }

results matching ""

    No results matching ""