# 配置参数模块 ------ #### **简介** 在线配置参数是噗嗤游戏开放的一个新模块功能,可以让开发者在后台配置参数中动态修改游戏中的参数值。例如:动态修改游戏的数值,小到一个简单开关0/1切换、一个简单的数字配置;打到一个游戏json配置等等。 该模块借鉴了[友盟在线配置参数](http://www.it610.com/article/4896789.htm)的设计思路。 #### **后台使用** 设置在线配置参数,登录后台->头部tab切换到【游戏数据】->【配置相关】->【配置参数】可新增、编辑修改参数值,配置完毕后,通过online模块相关的api使用: ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_021.png "🔍点击查看大图") #### **接入API:** | **名称** | **功能说明** | | ------------------------------- | ------------------------------------------------------------ | | PCSDK.online.updateOnlineConfig | 拉取后台配置的配置参数数据,可代码中手动调用,也可以通过config.js中配置SDK主动拉取,注意:使用前请详细[阅读config.js的IsOnlineAutoUse和IsOnlineDebug参数详解](install.md#config_env) | | PCSDK.online.getParamsInt | 根据在线参数key获取number类型参数值,适合配置参数为:整数、浮点数 | | PCSDK.online.getParamsObj | 根据在线参数key获取object类型参数值,适合配置参数为:数组、json对象 | | PCSDK.online.getParamsString | 根据在线参数key获取string类型参数值,适合配置参数为:字符串、json字符串 | 1. ##### **updateOnlineConfig** ```javascript PCSDK.online.updateOnlineConfig(): Promise ``` 定义:拉取后台配置的配置参数数据, 提示: > [config.js中配置IsOnlineAutoUse](install.md#config_env)为true:SDK启动时自动去拉取在线配置参数,开发者不需要调用此接口,不然会导致重复拉取 > > [config.js中配置IsOnlineAutoUse](install.md#config_env)为false:有两种理解方式:1)不接入使用在线配置参数模块;2)接入使用在线配置参数模块,开发者自己手动调用updateOnlineConfig api处理逻辑。 > > 下面示例会演示两种不同配置的使用范例: 参数: ``` 无 ``` 返回值: ``` Promise ```
示例1:config.js配置IsOnlineAutoUse为false,开发者调用updateOnlineConfig api手动拉取在线配置参数数据 ```javascript // 后台 ->【游戏数据】->【配置参数】栏配置了:是否显示微信插屏广告、交叉推广位是否展示动态开关 PCSDK.online.updateOnlineConfig().then(() => { // 使用1:获取是否后台动态配置开启插屏广告,1为开启,0为关闭 let isInterstitialAd = PCSDK.online.getParamsInt('interstitial_ad_open', 0) === 1; // isInterstitialAd && '显示插屏广告'; // 使用2:获取动态多个广告位开启的配置 let pcGameOpenMap = PCSDK.online.getParamsObj('pc_games_open', { "Drawer": 0, "GuessLike": 0, "Cross": 0 }); // pcGameOpenMap.Drawer === 1 && '显示抽屉推广位'; // pcGameOpenMap.GuessLike === 1 && '显示猜你喜欢推广位'; // pcGameOpenMap.Cross === 1 && '显示交叉推广位'; // 使用3:获取签到配置 let signRewardCfg = PCSDK.online.getParamsObj('sign_reward_cfg', [100, 300, 500, 700, 900, 2000, 3000]); // 使用4:获取动态bannerUid let bannerUid = PCSDK.online.getParamsString('banner_common_uid', 'adunit-fe38438f074c717f'); // bannerUid && '显示banner'; }); ``` 示例2:config.js配置IsOnlineAutoUse为true,SDK启动时会自动调用 updateOnlineConfig api拉取在线配置参数数据 ```javascript let isInterstitialAd = PCSDK.online.getParamsInt('interstitial_ad_open', 0) === 1; let pcGameOpenMap = PCSDK.online.getParamsObj('pc_games_open', { "Drawer": 0, "GuessLike": 0, "Cross": 0 }); ``` 2. ##### **getParamsInt** ```javascript PCSDK.online.getParamsInt( key: string, defaultVal?: number ): number ``` 定义:根据在线参数key获取number类型参数值,适合配置参数为:整数、浮点数 参数: ```javascript key: string 必传 后台 ->【配置参数】配置的key defaultVal: number 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值 ``` 返回值: ``` number ``` 示例:[查看上面的示例代码](online.md#sample) 3. **getParamsObj** ```javascript PCSDK.online.getParamsObj( key: string, defaultVal?: any ): any ``` 定义:根据在线参数key获取object类型参数值,适合配置参数为:数组、json对象 参数: ```javascript key: string 必传 后台 ->【配置参数】配置的key defaultVal: any 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值 ``` 返回值: ``` object | array | null ``` 示例:[查看上面的示例代码](online.md#sample) 1. **getParamsString** ```javascript PCSDK.online.getParamsString( key: string, defaultVal?: string ): string ``` 定义:根据在线参数key获取string类型参数值,适合配置参数为:字符串、json字符串 参数: ```javascript key: string 必传 后台 ->【配置参数】配置的key defaultVal: string 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值 ``` 返回值: ``` string ``` 示例:[查看上面的示例代码](online.md#sample)