首页 >> 知识 >> SDK 初始化

SDK 初始化

# SDK 初始化

注意

小程序、小游戏、H5应用都是用的是同一个SDK,所以初始化SDK的逻辑都是一样的。

在使用小程序的API之前,需要先初始化小程序SDK。只有SDK初始化成功之后,才能使用SDK提供的API,否则 API调用都会失败。

# 1. 初始化

初始化SDK的API有两个:

/// 初始化SDK/// @param config 配置对象/// @param error 初始化失败时返回的error- (BOOL)initWithConfig:(FATConfig *)config error:(NSError **)error;/// 初始化SDK/// @param config 配置对象/// @param uiConfig UI配置对象/// @param error 初始化失败时返回的error- (BOOL)initWithConfig:(FATConfig *)config uiConfig:(FATUIConfig *)uiConfig error:(NSError **)error;

初始化示例:

FATStoreConfig *storeConfig = [[FATStoreConfig alloc] init];storeConfig.sdkKey = @"这里填上的SDK Key";storeConfig.sdkSecret = @"这里填上SDK secret";storeConfig.apiServer = @"这里填上你们的服务器地址"; // 例如:http://api.finclip.com;FATConfig *config = [FATConfig configWithStoreConfigs:@[storeConfig]]; [[FATClient sharedClient] initWithConfig:config error:nil];

注意

从2.13.109版本开始,FinClip 小程序 SDK 支持配置多个服务器信息,这样就可以打开A服务器上的小程序,又可以打开B服务器上的小程序,所以草莓视频在线观看APP提供了配置多个服务器信息的方式。 configWithAppSecret:appKey:未来会弃用,请尽早替换为configWithStoreConfigs的方式构造FATConfig。 自2.34.1开始,不再需要配置apiPrefix,内部已经在接口上配置好了apiPrefix。

以下是配置多个服务器初始化SDK的示例:

NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"servers" ofType:@"plist"];NSArray *array = [NSArray arrayWithContentsOfFile:plistPath];NSMutableArray *storeArrayM = [NSMutableArray array];for (NSDictionary *dict in array) { FATStoreConfig *storeConfig = [[FATStoreConfig alloc] init]; storeConfig.sdkKey = dict[@"sdkKey"]; storeConfig.sdkSecret = dict[@"sdkSecret"]; storeConfig.apiServer = dict[@"apiServer"]; storeConfig.apmServer = dict[@"apmServer"]; if ([@"SM" isEqualToString:dict[@"cryptType"]]) { storeConfig.cryptType = FATApiCryptTypeSM; } else { storeConfig.cryptType = FATApiCryptTypeMD5; } [storeArrayM addObject:storeConfig];}FATConfig *config = [FATConfig configWithStoreConfigs:storeArrayM];[[FATClient sharedClient] initWithConfig:config error:nil];# 2. 配置项

初始化SDK时的配置项分FATConfig和FATUIConfig。FATConfig中主要是与UI不相关的配置项;而FATUIConfig主要都是与UI相关的配置项。

# 2.1 FATConfig配置项 配置名称 类型 配置描述 currentUserId NSString 当前用户唯一标识,小程序缓存信息会存储在以userId命名的不同目录下 memberUserId String 成员标识,用于打开体验版、开发版。如果未设置会取userId,需要跟管理平台体验、开发成员列表的用户标识匹配 channel NSString 渠道标识,如果不填,默认为项目的 BundleID,插件中实现getphonesNumber和login会用到。 phones NSString 手机号也可以是一个Token,非必传,插件中实现getphonesNumber会用到。 encryptUserId BOOL (后台接口)是否对userId进行加密传输,需要确保后台服务升级至1.4.1以上,否则加密会导致接口请求失败,默认为false productIdentification NSString 产品的标识,配置会将文件夹、UserAgent里的FinClip 等标识改为配置后的值 disableAuthorize BOOL 是否禁止SDK触发权限申请,默认为NO,如果设置为YES,则SDK内使用权限的api,不会主动申请权限。 appletAutoAuthorize BOOL 是否允许SDK自动授予小程序权限。默认为NO,如果设置为YES,则小程序里首次触发权限时不会展示权限弹框 disableGetSuperviseInfo BOOL 是否禁用SDK的监管接口API,默认为NO,如果设置为YES,则SDK禁用监管接口API(getSuperviseInfo) appletIntervalUpdateLimit NSInteger 后台自动检查更新的小程序个数,取值范围:0~50。0代表不检查更新;不设置默认是3。 apmExtension NSDictionary apm统计的扩展信息。 startCrashProtection BOOL 是否开启Crash防崩溃。UnrecognizedSelector、KVO、Notification、Timer、Container(数组越界,字典插入nil等)、String (越界、nil等) enableApmDataCompression BOOL apm数据上报时,是否压缩数据 appletDebugMode FATAppletDebugMode 小程序debug模式设置。 默认为default,非正式版可通过api或者
网站地图