FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# SDK 初始化

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

# 1. 初始化

初始化SDK的API有两个:


 ///
/// initialize FinClip SDK.
/// 初始化SDK(推荐使用)
/// [config] is required. sdk配置
/// [uiConfig] is optional. UI配置
Future<Map> initSDK(Config config, {UIConfig? uiConfig})

  ///
  /// initialize FinClip SDK.
  /// 初始化SDK(将要废弃)
  /// [sdkkey] is required. it can be getted from api.finclip.com
  /// [secret] is required. it can be getted from api.finclip.com
  /// [apiServer] is optional. the mop server address. default is https://api.finclip.com
  /// [apiPrefix] is optional. the mop server prefix. default is /api/v1/mop
  /// [cryptType] is optional. cryptType, should be MD5/SM
  /// [disablePermission] is optional.
  /// [encryptServerData] 是否对服务器数据进行加密,需要服务器支持
  /// [userId] 用户id
  /// [finStoreConfigs] 多服务配置
  /// [uiConfig] UI配置
  /// [debug] 设置debug模式,影响调试和日志
  /// [customWebViewUserAgent] 设置自定义webview ua
  /// [appletIntervalUpdateLimit] 设置小程序批量更新周期
  /// [maxRunningApplet] 设置最大同时运行小程序个数
  ///
  Future<Map> initialize(
    String sdkkey,
    String secret, {
    String? apiServer,
    String? apiPrefix,
    String? cryptType,
    bool encryptServerData = false,
    bool disablePermission = false,
    String? userId,
    bool debug = false,
    bool bindAppletWithMainProcess = false,
    List<FinStoreConfig>? finStoreConfigs,
    UIConfig? uiConfig,
    String? customWebViewUserAgent,
    int? appletIntervalUpdateLimit,
    int? maxRunningApplet,
  })

初始化示例:

// 1.创建Config
FinStoreConfig storeConfig = new FinStoreConfig('22LyZEib0gLTQdU3MUauATBwgfnTCJjdr7FCnywmAEM=', 'bdfd76cae24d4313', 'https://api.finclip.com');
Config config = new Config([storeConfig]);
config.userId = '您app的用户唯一标识';

// 2.创建UIConfig
UIConfig uiConfig = new UIConfig();
uiConfig.isHideAddToDesktopMenu = true;
uiConfig.isHideFeedbackAndComplaints = true;
final res = await Mop.instance.initSDK(config, uiConfig: uiConfig);

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

// 1.创建Config
// 1.1 配置服务器1的参数
FinStoreConfig finclip_store = FinStoreConfig('22LyZEib0gLTQdU3MUauATBwgfnTCJjdr7FCnywmAEM=', 'bdfd76cae24d4313', 'https://api.finclip.com');
// 1.2 配置服务器2的参数
FinStoreConfig test_store = FinStoreConfig('sdkKey2', 'sdkSecret2', '测试服务器');
Config config = Config([finclip_store, test_store]);
config.userId = '您app的用户唯一标识';

// 2.创建UIConfig
UIConfig uiConfig = UIConfig();
uiConfig.isHideAddToDesktopMenu = true;
uiConfig.isHideFeedbackAndComplaints = true;
final res = await Mop.instance.initSDK(config, uiConfig: uiConfig);

# FinStoreConfig配置项

配置名称 类型 是否必填 说明
sdkKey String 创建应用时生成的sdkKey
sdkSecret String 创建应用时生成的sdkSecret
apiServer String 服务器地址,客户部署的后台地址
apmServer String apm事件上报的服务器地址,不设置时使用apiServer
cryptType String 网络接口加密类型。默认为"MD5",也可以设置为"SM"(国密)
fingerprint String SDK指纹,在证联环境时必须传,否则接口访问不通
encryptServerData Boolean 默认为false。目前只能设置为false,设置为true会导致接口访问失败
enablePreloadFramework Boolean 默认为true。是否预下载基础库,如果设置为false,则初始化SDK时不会预下载基础库

# 2. 配置项

初始化SDK时的配置项为ConfigUIConfig

  • Config中主要是与UI不相关的配置项;
  • UIConfig主要都是与UI相关的配置项。

# 2.1 Config中的配置项

配置名称 类型 配置描述
finStoreConfigs List<FinStoreConfig> 要初始化的服务器配置对象列表,具体参数见FinStoreConfig
userId String 当前用户唯一标识,小程序缓存信息会以userId做隔离
productIdentification String 产品的标识,影响缓存根目录,以及userAgent中的标识
disableRequestPermissions Boolean 是否禁止SDK触发权限申请,默认为false。如果设置为true,则SDK内使用权限的api,不会主动申请权限。
appletAutoAuthorize Boolean 申请权限时是否会弹出对话框让用户确认,默认为false。如果设置为true,自动向SDK申请权限,不展示弹框
disableGetSuperviseInfo Boolean 是否禁用SDK的监管接口API,默认为false,如果设置为true,则SDK禁用监管接口API(getSuperviseInfo)
appletIntervalUpdateLimit int 后台自动检查更新的小程序个数,取值范围:0~50。0代表不检查更新;不设置默认是3。
apmExtendInfo Map<String, String> apm 统计的扩展信息。Map类型
startCrashProtection Boolean 是否开启Crash防崩溃,默认值为false(仅iOS支持)。UnrecognizedSelector、KVO、Notification、Timer、Container(数组越界,字典插入nil等)、String (越界、nil等)
enableApmDataCompression Boolean apm数据上报时,是否压缩数据,默认值为false
encryptServerData Boolean 平台接口返回的数据是否要加密,默认值为false。
appletDebugMode BOOLState 是否开启小程序的debug模式,即显示vConsole。
enableWatermark Boolean 是否显示水印,默认值为false。
watermarkPriority ConfigPriority 显示水印优先级设置,默认全局配置优先
baseLoadingViewClass String 小程序的自定义loading视图的class类名,仅iOS支持
baseLoadFailedViewClass String 小程序的加载失败视图的class类名,仅iOS支持
header Map<String, String> 统一设置小程序中网络请求的header
headerPriority ConfigPriority header优先级设置,默认全局配置优先
enableH5AjaxHook Boolean 是否开启小程序中加载的H5页面hook功能,默认为false。仅iOS支持,详情见api中的注释
h5AjaxHookRequestKey String 开启enableH5AjaxHook后,会hook request请求,可设置requestKey。仅iOS支持
pageCountLimit int 小程序中页面栈的最大限制。默认值为0,表示不限制。
schemes List<String> 自定义的scheme数组。 SDK内部默认支持微信、支付宝、 FinClip App 、tel这些scheme
debug Boolean 设置debug模式,影响调试和日志。
maxRunningApplet int 设置最大同时运行的小程序个数。仅Android支持
webViewMixedContentMode int WebView mixed content mode。仅Android支持
bindAppletWithMainProcess Boolean 小程序进程是否与主进程绑定,默认值为false。设置为true时,App被杀死,小程序同步关闭。仅Android支持
killAppletProcessNotice String App被杀后关闭小程序的提示文案。仅Android支持
enableScreenShot Boolean 是否允许截屏录屏,默认为true。仅Android支持
screenShotPriority ConfigPriority 截屏录屏配置项的优先级,默认GLOBAL。仅Android支持
logLevel LogLevel 日志记录等级,默认为NONE。
logMaxAliveSec int 日志文件最长缓存时间,单位秒,默认为10天。
logDir String Log日志文件保存的目录。
enablePreNewProcess Boolean 是否提前创建进程,默认为true。仅Android支持
language LanguageType SDK公共UI的语言类型,默认为中文
customLanguagePath String SDK公共UI自定义语言的相对路径,优先级高于 language 属性(仅 iOS 平台生效)
localeLanguage String 自定义SDK的语言,优先级高于内置的 language 属性(仅 android 平台生效),语言列表可以参考:https://uutool.cn/info-i18n/ 或者Java类 【java.util.Locale】。示例:简体中文:zh_CN,繁体中文:zh_TW,英文:en
useLocalTbsCore Boolean 是否使用本地加载tbs内核,默认为false。仅Android支持
tbsCoreUrl String tbs内核的下载地址,不包含文件名。仅Android支持
enableJ2V8 Boolean 是否开启j2v8,默认为false。仅Android支持
backgroundFetchPeriod int 周期性更新的时间间隔(小时), 设置为0不会发起周期性更新请求,接收设置范围为3-12小时

# 2.2 UIConfig中的配置项

配置名称 类型 配置描述
navigationTitleTextAttributes Map<String, dynamic> 导航栏标题的样式,目前仅支持字体的配置。仅iOS支持
navigationBarHeight double 导航栏高度,默认为44。仅iOS支持
navigationBarTitleLightColor int 导航栏的标题Light颜色(系统深色主题下的颜色),默认值为白色 0xffffffff
navigationBarTitleDarkColor int 导航栏的标题Dark颜色(系统明亮主题下的颜色),默认值为黑色 0xff000000
navigationBarBackBtnLightColor int 导航栏的返回按钮Light颜色(系统深色主题下的颜色),默认值为白色
navigationBarBackBtnDarkColor int 导航栏的返回按钮Dark颜色(系统明亮主题下的颜色),默认值为黑色
moreMenuStyle int 弹出的菜单视图的样式 0:默认 1:Normal
isHideBackHomePriority ConfigPriority 隐藏导航栏返回首页按钮的优先级设置,默认全局配置优先。仅iOS支持
isAlwaysShowBackInDefaultNavigationBar Boolean 当导航栏为默认导航栏时,是否始终显示返回按钮,默认值为false。仅Android支持
isClearNavigationBarNavButtonBackground Boolean 是否清除导航栏导航按钮的背景,默认为false。仅Android支持
isHideFeedbackAndComplaints Boolean 隐藏...弹出菜单中的 【反馈与投诉】 菜单,默认为false
isHideBackHome Boolean 隐藏...弹出菜单中的 【返回首页】 菜单。默认为false
isHideForwardMenu Boolean 隐藏...弹出菜单中的 【转发】 菜单,默认为false
isHideShareAppletMenu Boolean 隐藏...弹出菜单中的 【分享】 菜单,默认为true
isHideAddToDesktopMenu Boolean 隐藏...弹出菜单中的 【添加到桌面】 菜单,默认为true
isHideFavoriteMenu Boolean 隐藏...弹出菜单中的 【收藏】 菜单,默认为true
isHideRefreshMenu Boolean 隐藏...弹出菜单中的 【重新进入小程序】 菜单,默认为false
isHideSettingMenu Boolean 隐藏...弹出菜单中的 【设置】 菜单,默认为false
capsuleConfig CapsuleConfig 右上角胶囊的样式配置,具体参数见CapsuleConfig
navHomeConfig NavHomeConfig 返回首页按钮的配置的样式配置,具体参数见NavHomeConfig
floatWindowConfig FloatWindowConfig 安卓浮窗样式配置,具体参数见FloatWindowConfig表。仅Android支持
authViewConfig AuthViewConfig 授权弹框样式配置,具体参数见AuthViewConfig表。
webViewProgressBarColor int 小程序里加载H5页面时进度条的颜色
hideWebViewProgressBar Boolean 隐藏小程序里加载H5时进度条,默认为false
autoAdaptDarkMode Boolean 是否适配暗黑模式,默认值为false

| appendingCustomUserAgent | String | 要拼接至userAgent中的内容。| | transtionStyle | TranstionStyle | 打开小程序时的默认动画方式。默认为TranstionStyleUp。可设置如下场景:1. scheme 打开小程序;2. universal link 打开小程序;3. navigateToMiniprogram的动画方式。仅iOS支持| | hideTransitionCloseButton | Boolean | 是否小程序loading页的关闭按钮,默认为false。| | disableSlideCloseAppletGesture | Boolean | 是否禁用侧滑关闭小程序的手势,默认为false。| | appletText | String | 默认为“小程序”,您需要替换展示的名称。比如设置为"轻应用",所有显示"小程序"的地方,都会变为"轻应用"| | loadingLayoutCls | String | Loading页Class,仅Android支持 | | useNativeLiveComponent | Boolean | 是否使用内置的live组件,默认为false。|

# 2.3 CapsuleConfig(胶囊)中的配置项

配置名称 类型 配置描述
capsuleWidth double 胶囊的宽度
capsuleHeight double 胶囊的高度
capsuleRightMargin double 胶囊的右边框距离屏幕右边框的距离
capsuleCornerRadius double 胶囊的圆角半径
capsuleBorderWidth double 胶囊的边框宽度
capsuleBgLightColor int 胶囊的浅色背景颜色,在系统深色主题下使用,默认颜色 android:0x33000000 ,iOS:0x80ffffff
capsuleBgDarkColor int 胶囊的深色背景颜色,在系统明亮主题下使用,默认颜色 android:0x80ffffff ,iOS:0x33000000
capsuleBorderLightColor int 胶囊的浅色边框颜色,在系统深色主题下使用,默认颜色 0x80ffffff
capsuleBorderDarkColor int 胶囊的深色边框颜色,在系统深色主题下使用,默认颜色 0x26000000
capsuleDividerLightColor int 胶囊里浅色分割线颜色,在系统深色主题下使用,默认颜色 0x80ffffff
capsuleDividerDarkColor int 胶囊里的深色分割线颜色,在系统深色主题下使用,默认颜色 0x26000000
moreLightImage int 胶囊的浅色更多按钮图片,暂未支持
moreDarkImage int 胶囊的深色更多按钮图片,暂未支持
moreBtnWidth double 胶囊的更多按钮宽度,高度与宽度相等,android默认值为32;ios默认值为20
moreBtnLeftMargin double 更多按钮的左边距,android默认值为6;ios默认值为12
closeLightImage int 胶囊里的深色关闭按钮图片,暂未支持
closeDarkImage int 胶囊里的深色关闭按钮图片,暂未支持
closeBtnWidth double 胶囊里关闭按钮的宽度,android默认值为32;ios默认值为20
closeBtnLeftMargin double 胶囊里关闭按钮的左边距,android默认值为6;ios默认值为12

# 2.4 NavHomeConfig(返回首页按钮)中的配置项

配置名称 类型 配置描述
width double 返回首页按钮的宽度
height double 返回首页按钮的高度
leftMargin double 返回首页按钮的左侧距离屏幕左边框的距离,Android默认值为8,iOS默认值为10
cornerRadius double 返回首页按钮的圆角半径,默认值为5
borderWidth borderWidth 返回首页按钮的边框宽度,Android默认值为0.75,iOS默认值为0.8
borderLightColor int 返回首页按钮的浅色边框颜色,默认值 0x80ffffff
borderDarkColor int 返回首页按钮的深色边框颜色,默认值 0x26000000
bgLightColor int 返回首页按钮的浅色背景颜色,默认值 0x33000000
bgDarkColor int 返回首页按钮的深色背景颜色,默认值 0x80ffffff

# 2.5 AuthViewConfig(权限弹框)的配置项

配置名称 类型 配置描述
appletNameTextSize double 小程序名称字体大小,默认为16
appletNameLightColor int 小程序名称的浅色颜色(明亮模式),默认0xff222222
appletNameDarkColor int 小程序名称的深色颜色(暗黑模式),默认0xffd0d0d0
authorizeTitleTextSize double 权限标题字体大小,默认大小17
authorizeTitleLightColor int 权限标题的浅色颜色(明亮模式),默认0xff222222
authorizeTitleDarkColor int 权限标题的深色颜色(暗黑模式),默认0xffd0d0d0
authorizeDescriptionTextSize double 权限描述字体大小,默认大小14
authorizeDescriptionLightColor int 权限描述的浅色颜色(明亮模式),默认0xff666666
authorizeDescriptionDarkColor int 权限描述的深色颜色(暗黑模式),默认0xff5c5c5c
agreementTitleTextSize double 协议标题字体大小,默认大小16
agreementTitleLightColor int 协议标题的浅色颜色(明亮模式),默认0xff222222
agreementTitleDarkColor int 协议标题的深色颜色(暗黑模式),默认0xffd0d0d0
agreementDescriptionTextSize double 协议描述字体大小,默认大小14
agreementDescriptionLightColor int 协议描述的浅色颜色(明亮模式),默认0xff222222
agreementDescriptionDarkColor int 协议描述的深色颜色(暗黑模式),默认0xffd0d0d0
linkLightColor int 链接的浅色颜色(明亮模式),默认0xff4285f4
linkDarkColor int 链接的深色颜色(暗黑模式),默认0xff4285f4
allowButtonLightConfig AuthButtonConfig 同意按钮配置(明亮模式),详细配置见AuthButtonConfig
allowButtonDarkConfig AuthButtonConfig 同意按钮配置(深色模式),详细配置见AuthButtonConfig
rejectButtonLightConfig AuthButtonConfig 拒绝按钮配置(明亮模式),详细配置见AuthButtonConfig
rejectButtonDarkConfig AuthButtonConfig 拒绝按钮配置(深色模式),详细配置见AuthButtonConfig

# 2.6 AuthButtonConfig(权限弹框里的按钮)的配置项

配置名称 类型 配置描述
cornerRadius double 按钮的圆角半径
normalBackgroundColor int 按钮默认背景颜色
pressedBackgroundColor int 按钮按下背景颜色
normalTextColor int 按钮默认文字颜色
pressedTextColor int 按钮按下文字颜色
normalBorderColor int 按钮默认边框颜色
pressedBorderColor int 按钮按下边框颜色

我们的默认胶囊是这样:

那么,我们只需要这样设置,就可以变成圆角:

UIConfig uiconfig = UIConfig();
CapsuleConfig capsuleConfig = CapsuleConfig();
capsuleConfig.capsuleCornerRadius = 16;
uiconfig.capsuleConfig = capsuleConfig;

效果如下:

© FinClip with ❤ , Since 2017