# 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 = @"这里填上你们的服务器地址"; // 例如:https://api.finclip.com;
FATConfig *config = [FATConfig configWithStoreConfigs:@[storeConfig]];
[[FATClient sharedClient] initWithConfig:config error:nil];
注意
- 从2.13.109版本开始,“人民网+”小程序 SDK 支持配置多个服务器信息,这样就可以打开A服务器上的小程序,又可以打开B服务器上的小程序,所以我们提供了配置多个服务器信息的方式。
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 | 当前用户唯一标识,小程序缓存信息会存储在以userId命名的不同目录下 |
disableAuthorize | 是否禁止SDK触发权限申请,默认为NO,如果设置为YES,则SDK内使用权限的api,不会主动申请权限。 |
appletAutoAuthorize | 是否自动向SDK申请权限,默认为NO,申请权限时会弹出对话框让用户确认是否允许申请,如果设置为YES,自动向SDK申请权限 |
disableGetSuperviseInfo | 是否禁用SDK的监管接口API,默认为NO,如果设置为YES,则SDK禁用监管接口API(getSuperviseInfo) |
appletIntervalUpdateLimit | 后台自动检查更新的小程序个数,取值范围:0~50。0代表不检查更新;不设置默认是3。 |
startCrashProtection | 是否开启Crash防崩溃。UnrecognizedSelector、KVO、Notification、Timer、Container(数组越界,字典插入nil等)、String (越界、nil等) |
enableApmDataCompression | apm数据上报时,是否压缩数据 |
encryptServerData | 平台接口返回的数据是否要加密 |
enableAppletDebug | 是否开启全局debug模式,设置为YES后所有小程序都会显示vconsole,如果设置为NO,则开发版、体验版、IDE预览版可通过 更多菜单开启Debug模式 |
enableH5AjaxHook | 是否开启小程序中加载的H5页面hook功能,非必填。详情见api中的注释 |
h5AjaxHookRequestKey | 开启enableH5AjaxHook后,会hook request请求,可设置requestKey |
pageCountLimit | 小程序中页面栈的最大限制。默认值为0,表示不限制。 |
schemes | 自定义的scheme数组。 SDK内部默认支持微信、支付宝、 “人民网+”小程序 App 、tel这些scheme |
language | SDK的语言类型。 目前仅支持中文和英文,默认情况下为中文,不支持的类型也会显示为中文 |
# 2.2 FATUIConfig中的配置项
配置名称 | 配置描述 |
---|---|
navigationTitleTextAttributes | 导航栏标题的样式,目前仅支持字体的配置。 |
capsuleConfig | 右上角胶囊的样式配置,具体参数见FATCapsuleConfig 表 |
navHomeConfig | 返回首页按钮的配置的样式配置,具体参数见FATNavHomeConfig 表 |
navigationBackImage | 导航栏返回按钮的图片对象 |
progressBarColor | 小程序中的 WebView 组件加载链接时的进度条颜色 |
moreMenuStyle | 胶囊里更多按钮弹出的菜单视图的样式 |
hideForwardMenu | 是否隐藏更多菜单中的转发按钮。 |
hideSettingMenu | 是否隐藏小程序更多菜单中的设置按钮。 |
hideShareAppletMenu | 是否隐藏小程序更多菜单中的分享按钮,默认是YES。 |
hideFeedbackMenu | 是否隐藏更多菜单中的投诉反馈按钮。 |
hideRefreshMenu | 是否隐藏更多菜单中的重新进入按钮。 |
hideBackToHome | 是否隐藏导航栏中回到首页按钮。 |
hideDebugMenu | 是否隐藏导航栏中打开/关闭调试按钮。 |
autoAdaptDarkMode | 是否适配暗黑模式。 |
appendingCustomUserAgent | 您需要添加至userAgent中的内容。 |
appletText | 默认为“小程序”,您需要替换展示的名称。比如设置会"轻应用",所有显示"小程序"的地方,都会变为"轻应用" |
transtionStyle | 打开小程序时的默认动画方式。不设置时,默认为FATTranstionStyleUp。可设置如下场景:1. scheme 打开小程序;2. universal link 打开小程序;3. navigateToMiniprogram的动画方式 |
hideTransitionCloseButton | 是否隐藏转场页的关闭按钮。默认为NO |
disableSlideCloseAppletGesture | 是否禁用侧滑关闭小程序的手势。默认为NO |
# 2.3 FATCapsuleConfig(胶囊)中的配置项
配置名称 | 配置描述 |
---|---|
capsuleWidth | 胶囊的宽度 |
capsuleHeight | 胶囊的高度 |
capsuleRightMargin | 胶囊的右边框距离屏幕右边框的距离 |
capsuleCornerRadius | 胶囊的圆角半径 |
capsuleBorderWidth | 胶囊的边框宽度 |
capsuleBorderLightColor | 胶囊的浅色边框颜色 |
capsuleBorderDarkColor | 胶囊的深色边框颜色 |
capsuleBgLightColor | 胶囊的浅色下背景颜色 |
capsuleBgDarkColor | 胶囊的深色下背景颜色 |
moreLightImage | 胶囊的浅色更多按钮图片 |
moreDarkImage | 胶囊的深色更多按钮图片 |
moreBtnWidth | 胶囊的更多按钮宽度 |
moreBtnLeftMargin | 更多按钮的左边距 |
closeLightImage | 胶囊里的深色关闭按钮图片 |
closeDarkImage | 胶囊里的深色关闭按钮图片 |
closeBtnWidth | 胶囊里关闭按钮的宽度 |
closeBtnLeftMargin | 胶囊里关闭按钮的左边距 |
capsuleDividerLightColor | 胶囊里浅色分割线颜色 |
capsuleDividerDarkColor | 胶囊里的深色分割线颜色 |
# 2.4 FATNavHomeConfig(返回首页按钮)中的配置项
配置名称 | 配置描述 |
---|---|
width | 返回首页按钮的宽度 |
height | 返回首页按钮的高度 |
leftMargin | 返回首页按钮的左侧距离屏幕左边框的距离 |
cornerRadius | 返回首页按钮的圆角半径 |
borderWidth | 返回首页按钮的边框宽度 |
lightImage | 返回首页按钮的浅色按钮图片 |
darkImage | 返回首页按钮的深色按钮图片 |
borderLightColor | 返回首页按钮的浅色边框颜色 |
borderDarkColor | 返回首页按钮的深色边框颜色 |
bgLightColor | 返回首页按钮的浅色背景颜色 |
bgDarkColor | 返回首页按钮的深色背景颜色 |
我们的默认胶囊是这样:
那么,我们只需要这样设置,就可以变成圆角:
FATUIConfig *uiConfig = [[FATUIConfig alloc] init];
uiConfig.capsuleConfig.capsuleCornerRadius = 15.5;
效果如下: