initSDK
接口描述
用于启动并初始化SDK。
注意事项
- 该接口用于启动并初始化SDK,在调用其他接口之前必须先调用该接口。
- 初始化方法必须在主线程调用。
- 该接口可能由于参数传错导致调用失败抛出异常。
接口定义
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 |
额外配置,补充属性(请看表4),不传该参数,传null即可。 |
表2 枚举SFSDKMode说明
枚举值 | 描述 | |
---|---|---|
MODE_SUPPORT_MUTABLE | SDK启动模式会根据配置变动 | (鸿蒙暂不支持) |
MODE_VPN | SDK启用VPN接入功能 | (鸿蒙暂时只支持此模式) |
MODE_VPN_SANDBOX | SDK启动VPN和安全沙箱功能 | (已经废弃,不推荐使用) |
MODE_SUPPORT_MUTABLE说明
使用场景
如果希望部分用户使用集成SDK的APP仅具备代理访问内网业务的能力,部分用户使用集成SDK的APP不仅具备代理访问内网业务的能力,并且还具备数据防泄密的能力,可以使用该模式。
授权占用
- 当集成SDK的APP在应用中心授权给用户,用户使用该APP便会以接入+安全沙箱模式运行,并且占用并发授权和UEM移动版授权;
- 当集成SDK的APP在应用中心未授权给用户,用户使用该APP便会以接入模式运行,并且占用并发授权;
- 当“高级设置”中未勾选“允许未授权用户以接入模式运行”时:
- (1) 如果集成SDK的APP在应用中心未授权给用户,则用户无法通过该APP接入使用;
- (2) 如果集成SDK的APP在应用中心授权给用户,则用户可以通过该APP接入使用,并且占用并发授权和UEM移动版授权。
注意
使用MODE_SUPPORT_MUTABLE模式会根据你当前服务端控制台的配置动态切换MODE_VPN和MODE_VPN_SANDBOX,开关说明说明:
如果勾选,表示当前sdk应用可以让未授权的用户以接入模式登录:当前开关功能仅在服务端版本2.2.10及以上版本支持
表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
);
}