# 插件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 内核文件了。