# 插件SDK初始化
在使用小程序的API之前,需要先初始化插件SDK。只有SDK初始化成功之后,才能使用SDK提供的API,否则 API调用都会失败。
# 1 插件SDK初始化
示例
MopSdk.initialize({
finStoreConfigs:[{
'sdkKey': '22LyZEib0gLTQdU3MUauAa2CctUv+NxTLFWyPxC28y2gA4x+JWh7hhNS5aO52BFs',
'sdkSecret': '65146ffa924ecfdc',
'apiServer': 'https://api.finclip.com'
}]
},
(ret) => {
console.log('App Launch Success', ret)
},
(ret) =>{
console.log('App Launch Fail', ret)
});
参数
| 配置名称 | 类型 | 配置描述 |
|---|---|---|
| options | Object | 插件SDK初始化信息 |
| onSuccess | Function | 插件SDK初始化成功回调 |
| onFail | Function | 插件SDK初始化失败回调 |
options配置项
| 配置名称 | 类型 | 配置描述 |
|---|---|---|
| finStoreConfigs | Array[FinStoreConfig] | 小程序服务器配置信息集合 |
| userId | String | 当前用户唯一标识,小程序缓存信息会存储在以userId命名的不同目录下,如需在后续逻辑中修改userId,则可以直接使用MopSdk.setUserId("newUserId") |
| phone | String | 手机号,也可以是一个Token,非必传,小程序插件中实现getPhoneNumber会用到。 |
| channel | String | 渠道标识,如果不填,默认为项目的 AppliationId,小程序插件中实现getPhoneNumber和login会用到。 |
| encryptUserId | Boolean | (后台接口)是否对userId进行加密传输,需要确保后台服务升级至1.4.1以上,否则加密会导致接口请求失败,默认为false |
| productIdentification | String | 产品的标识,配置会将文件夹、UserAgent里的FinClip 等标识改为配置后的值 |
| isDebugMode | boolean | 应用当前是否是Debug模式。 |
| isEnableLog | boolean | 是否开启日志 |
| isEnableXLogConsole | boolean | 是否开启XLog的控制台日志,若为false,则仅持久化日志,不在控制台显示 |
| apmExtendInfo | Array[{key:'aa',value:'aaa'}] | apm统计的扩展信息。 |
| disableRequestPermissions | boolean | 是否禁止SDK触发权限申请,默认为false,如果设置为true,则SDK内使用权限的api,不会主动申请权限。 |
| needToRemoveCookiesDomains | boolean | 初始化SDK时需要移除cookies的域名列表 |
| appletIntervalUpdateLimit | int | 后台自动检查更新的小程序个数,取值范围:0~50。0代表不检查更新;不设置默认是3。 |
| appletText | String | 小程序文案,默认为“小程序”,你可以设置为"快应用","轻应用" |
| customWebViewUserAgent | String | 需要添加至UserAgent中的内容 (仅安卓) |
| enableApmDataCompression | boolean | apm数据上报时,是否压缩数据,默认为false |
| disableGetSuperviseInfo | boolean | 是否禁用SDK的监管接口API,默认为false,如果设置为true,则SDK禁用监管接口API(getSuperviseInfo) |
| appletAutoAuthorize | boolean | 是否允许SDK自动授予小程序权限。默认为false.如果设置为true,则小程序里首次触发权限时不会展示权限弹框 |
| appletDebugMode | boolean | 是否开启小程序的vconsole调试,默认为false |
| pageCountLimit | int | 小程序中页面栈个数的最大限制。默认值为0,表示不限制。 |
| header | Array[{key:'aa',value:'aaa'}] | 小程序中网络(request/uploadFile/downloadFile)请求的header |
| headerPriority | String | header配置优先级,默认GLOBAL,可选值(SPECIFIED、APPLET_FILE、GLOBAL) |
| ignoreWebviewCertAuth | boolean | 是否忽略SSL证书校验。默认为false,设置为true时,小程序的request、uploadFile、downloadFile、web-view组件可加载不受信任的https链接以及http链接 |
| schemes | Array[String] | 自定义的scheme数组。 SDK内部默认支持微信、支付宝、 FinClip App 、tel这些scheme |
| locale | String | sdk 公共UI的语言类型,目前仅支持中文和英文,默认为简体中文,可选值为zh、en |
| uiConfig | UIConfig | 小程序UI配置信息 |
| startCrashProtection | boolean | 是否开启Crash防崩溃,默认为false。UnrecognizedSelector、KVO、Notification、Timer、Container(数组越界,字典插入nil等)、String (越界、nil等)(仅IOS) |
| enableWebViewDownloadFile | boolean | 是否允许 web-view 组件下载文件,默认为 true (仅安卓) |
| enableHoleRender | boolean | 开启webView打洞同层渲染,仅仅支持组件(live-player、live-pusher)优先级高于X5同层渲染(注意事项参看初始化集成 (opens new window)第3.6) (仅安卓) |
| needToRemoveCookiesDomains | Array[String] | 初始化SDK时需要移除cookies的域名列表 (仅安卓) |
| maxRunningApplet | int | 可同时运行的小程序个数 ,默认为5 (仅安卓) |
| webViewMixedContentMode | int | WebView mixed content mode。可选值0,1,2,其中0为始终不允许非安全加载,0为始终允许加载所有,2为混合加载,允许https加载http(仅安卓) |
| bindAppletWithMainProcess | boolean | 小程序进程是否与app主进程绑定,如果设置为true,则主进程被杀死时,小程序进程同步关闭(仅安卓) |
| killAppletProcessNotice | String | app主进程被杀后关闭小程序的提示文案(仅安卓) |
| minAndroidSdkVersion | int | 最低支持的Android SDK版本 (仅安卓) |
| enablePreNewProcess | boolean | 是否提前创建进程,默认为true (仅安卓) |
| disableTbs | boolean | 是否禁用tbs sdk(仅安卓) |
| useLocalTbsCore | boolean | 是否从本地加载 TBS X5 内核,需要设置为 true(仅安卓) |
| tbsCoreUrl | String | 下载 TBS X5 内核文件的服务器地址 (仅安卓) |
FinStoreConfig配置项
| 配置名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| sdkKey | String | 是 | 创建应用时生成的sdkKey |
| sdkSecret | String | 是 | 创建应用时生成的sdkKey |
| apiServer | String | 是 | 服务器地址,客户部署的后台地址 |
| apmServer | String | 否 | apm事件上报的服务器地址,不设置时使用apiServer |
| cryptType | String | 否 | 网络接口加密类型。默认为"MD5",也可以设置为"SM"(国密) |
| fingerprint | String | 否 | SDK指纹,在证联环境时必须传,否则接口访问不通 |
| encryptServerData | Boolean | 否 | 默认为false。目前只能设置为false,设置为true会导致接口访问失败 |
| enablePreloadFramework | Boolean | 否 | 默认为true。是否预下载基础库,如果设置为false,则在初始化SDK时关闭预下载基础库 |
UIConfig配置项
| 配置名称 | 类型 | 配置描述 |
|---|---|---|
| navigationBarTitleLightColor | String | 导航栏标题文字浅色颜色,用于深色主题 |
| navigationBarTitleDarkColor | String | 导航栏标题文字深色颜色,用于浅色主题 |
| navigationBarBackBtnLightColor | String | 导航栏返回按钮的浅色颜色,用于深色主题 |
| navigationBarBackBtnDarkColor | String | 导航栏返回按钮的深色颜色,用于浅色主题 |
| isHideFeedbackAndComplaints | boolean | 是否隐藏"更多"菜单中的"反馈与投诉"按钮 |
| isHideBackHome | boolean | 是否隐藏导航栏上的"返回首页"按钮 |
| isHideForwardMenu | boolean | 是否隐藏"更多"菜单中的"转发"按钮 |
| isHideSettingMenu | boolean | 是否隐藏“更多”菜单中的“设置”按钮 |
| isHideRefreshMenu | boolean | 是否隐藏“更多”菜单中的“重新进入小程序”按钮 |
| isHideShareAppletMenu | boolean | 是否隐藏“更多”菜单中的“分享”按钮,默认为true |
| isHideAddToDesktopMenu | boolean | 是否隐藏“更多”菜单中的“添加到桌面”按钮,默认为true |
| isHideFavoriteMenu | boolean | 是否隐藏“更多”菜单中的“收藏”按钮,默认为true |
| hideDebugMenu | boolean | 是否隐藏更多菜单中的调试按钮 |
| hideTransitionCloseButton | boolean | 是否隐藏小程序loading页的关闭按钮 |
| hideCapsuleCloseButton | boolean | 是否隐藏所有小程序右上角胶囊里的关闭按钮 |
| disableSlideCloseAppletGesture | boolean | 是否禁用侧滑关闭小程序手势 |
| moreMenuStyle | int | 更多菜单的样式 |
| autoAdaptDarkMode | boolean | 是否自适应系统深色模式 |
| hideWebViewProgressBar | boolean | 是否隐藏web-view组件加载H5链接时的进度条 |
| webViewProgressBarColor | String | web-view组件加载H5链接时的进度条的颜色 |
| forwadMenuTitle | String | "更多"菜单中"转发"按钮标题 |
| navHomeConfig | NavHomeConfig | 导航栏返回首页按钮的配置 |
| capsuleConfig | CapsuleConfig | 胶囊的配置 |
| authViewConfig | AuthViewConfig | 授权弹框配置 |
| navigationBarHeight | Number | 导航栏高度,默认值为44(仅IOS) |
| useNativeLiveComponent | boolean | 是否使用内置的live组件。默认为false,当设置为true时。 |
| navigationBarTitleTextLayoutGravity | String | 导航栏标题相对父控件的Gravity(仅安卓) 可选值:Left、Center |
| isAlwaysShowBackInDefaultNavigationBar | boolean | 是否始终显示返回按钮(仅安卓) |
| isClearNavigationBarNavButtonBackground | boolean | 是否清除导航栏按钮的背景(仅安卓) |
NavHomeConfig配置项
| 配置名称 | 类型 | 配置描述 |
|---|---|---|
| width | float | 返回首页按钮宽度,默认44 |
| height | float | 返回首页按钮高度,默认32 |
| leftMargin | float | 返回首页按钮的左边距,默认8 |
| cornerRadius | float | 返回首页按钮边框圆角半径,默认5 |
| borderWidth | float | 返回首页按钮边框宽度,默认0.75 |
| borderLightColor | String | 返回首页按钮浅色边框颜色,默认0X80FFFFFF |
| borderDarkColor | String | 返回首页按钮深色边框颜色,默认0X26000000 |
| bgLightColor | String | 返回首页按钮浅色背景,默认0x33000000 |
| bgDarkColor | String | 返回首页按钮深色背景,默认0x80ffffff |
CapsuleConfig配置项
| 配置名称 | 类型 | 配置描述 |
|---|---|---|
| capsuleWidth | float | 右上角胶囊视图的宽度,默认值为88 |
| capsuleHeight | float | 右上角胶囊视图的高度,默认值为32 |
| capsuleRightMargin | float | 右上角胶囊视图的右边距 |
| capsuleCornerRadius | float | 右上角胶囊视图的圆角半径,默认值为5 |
| capsuleBorderWidth | float | 右上角胶囊视图的边框宽度,默认值为0.75 |
| moreBtnWidth | float | 胶囊里的更多按钮的宽度,高度与宽度相等,默认为32 |
| moreBtnLeftMargin | float | 胶囊里的更多按钮的左边距,默认为6 |
| closeBtnWidth | float | 胶囊里的关闭按钮的宽度,注意:高度与宽度相同,默认值32 |
| closeBtnLeftMargin | float | 胶囊里的关闭按钮的左边距,默认为6 |
| capsuleBgLightColor | String | 胶囊背景颜色浅色,默认为0x33000000 |
| capsuleBgDarkColor | String | 胶囊背景颜色浅色,默认为0x80ffffff |
| capsuleBorderLightColor | String | 右上角胶囊视图的边框浅色颜色,默认为0x80ffffff |
| capsuleBorderDarkColor | String | 右上角胶囊视图的边框深色颜色,默认为0x26000000 |
AuthViewConfig配置项
| 配置名称 | 类型 | 配置描述 |
|---|---|---|
| appletNameTextSize | float | 小程序名称字体大小,默认16 |
| appletNameLightColor | String | 小程序名称的浅色颜色,默认#222222 |
| appletNameDarkColor | String | 小程序名称的深色颜色,默认#d0d0d0 |
| authorizeTitleTextSize | float | 权限标题字体大小,默认17 |
| authorizeTitleLightColor | String | 权限标题的浅色颜色,默认#222222 |
| authorizeTitleDarkColor | String | 权限标题的深色颜色,默认#d0d0d0 |
| authorizeDescriptionTextSize | float | 权限描述字体大小,默认14 |
| authorizeDescriptionLightColor | String | 权限描述的深色颜色,默认#5c5c5c |
| authorizeDescriptionDarkColor | String | 权限描述的深色颜色,默认#5c5c5c |
| agreementTitleTextSize | float | 协议标题字体大小,默认16 |
| agreementTitleLightColor | String | 协议标题的浅色颜色,默认#222222 |
| agreementTitleDarkColor | String | 协议标题的深色颜色,默认#d0d0d0 |
| agreementDescriptionTextSize | float | 协议描述字体大小,默认14 |
| agreementDescriptionLightColor | String | 协议描述的浅色颜色,默认#222222 |
| agreementDescriptionDarkColor | String | 协议协议描述的深色颜色,默认#d0d0d0 |
| linkLightColor | String | 链接的浅色颜色,默认#4285f4 |
| linkDarkColor | String | 链接的深色颜色,默认#4285f4 |
| allowButtonLightConfig | AuthButtonConfig | 同意按钮浅色配置,具体见AuthButtonConfig |
| allowButtonDarkConfig | AuthButtonConfig | 同意按钮深色配置,具体见AuthButtonConfig |
| rejectButtonLightConfig | AuthButtonConfig | 拒绝按钮浅色配置,具体见AuthButtonConfig |
| rejectButtonDarkConfig | AuthButtonConfig | 拒绝按钮深色配置,具体见AuthButtonConfig |
AuthButtonConfig配置项
| 配置名称 | 类型 | 配置描述 |
|---|---|---|
| cornerRadius | float | 按钮的圆角半径 |
| normalBackgroundColor | String | 按钮默认背景颜色 |
| pressedBackgroundColor | String | 按钮按下背景颜色 |
| normalBorderColor | String | 按钮默认边框颜色 |
| pressedBorderColor | String | 按钮按下边框颜色 |
| normalTextColor | String | 按钮默认文字颜色 |
| pressedTextColor | String | 按钮按下文字颜色 |
# 2 使用TBS X5 WebView (仅安卓)
SDK 默认使用系统 WebView 加载小程序,同时也支持使用 TBS X5 WebView 加载小程序。使用 TBS X5 内核可以实现部分原生组件的同层渲染,目前支持通过 TBS X5 内核进行同层渲染的原生组件有:
video
live-player
live-pusher
map
input
textarea
启用 TBS X5 WebView 的方法:

依赖 TBS SDK 之后,SDK 内部使用的 WebView 将自动切换为 X5 WebView。SDK 初始化过程中会对 TBS SDK 进行初始化,待 X5 内核加载成功之后,即可使用 X5 内核提供的各种能力。 由于腾讯下发 X5 内核文件有概率受网络状况影响,可能导致 X5 内核下载缓慢或失败,所以 SDK 也支持从自己的服务器下载 X5 内核文件,实现方式如下:
下载 TBS X5 内核文件: armeabi 架构 X5 内核文件 (opens new window) arm64-v8a 架构 X5 内核文件 (opens new window)
将下载好的 X5 内核文件上传到自己的服务器,并对上传到服务器后的内核文件重命名: armeabi 架构 X5 内核文件重命名为:armeabi_release.tbs arm64-v8a 架构 X5 内核文件重命名为:arm64-v8a_release.tbs 重命名是为了便于 SDK 内部拼接完整的内核文件下载地址。
设置 SDK 初始化配置参数:

经过以上步骤,SDK 初始化的时候就能够从自己的服务器下载 X5 内核文件了。