diff --git a/SUMMARY.md b/SUMMARY.md index d886a0f..b27ea18 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -13,7 +13,7 @@ * [自定义事件打点✔️](stat_event.md) * [交叉推广位✔️](stat_ads.md) * [分享视频模块](share.md) -* [在线配置模块](online.md) +* [配置参数模块️✔️](online.md) * [多平台接口模块](platform.md) * [支付打点](platform_pay.md) * [授权按钮](platform_common.md#userbtn) diff --git a/online.md b/online.md new file mode 100644 index 0000000..e0fbc6b --- /dev/null +++ b/online.md @@ -0,0 +1,165 @@ + +# 配置参数模块 + +------ + +#### **简介** + +在线配置参数是噗嗤游戏开放的一个新模块功能,可以让开发者在后台配置参数中动态修改游戏中的参数值。例如:动态修改游戏的数值,小到一个简单开关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) + + \ No newline at end of file diff --git a/stat_level.md b/stat_level.md index c5d1362..3c6141b 100644 --- a/stat_level.md +++ b/stat_level.md @@ -45,7 +45,7 @@ } ``` - [点此查看完整示例](stat_level.md#sample)如何添加关卡失败打点代码 + [点此查看完整示例](stat_level.md#sample)如何添加关卡复活成功打点代码 2. #### **logLevelHide** @@ -53,8 +53,8 @@ PCSDK.stat.logLevelHide(levelId: string | number , opts?: { attr: number } ): void ``` - > 定义:游戏中onHide时(监听wx.onHide事件)关卡退出数据上报。 - > 需要屏蔽掉复活、失败、成功状态下onHide + > 定义:游戏中onHide时(设置wx.onHide回调监听事件)关卡onHide数据上报。 + > 需要屏蔽掉复活、失败、成功状态 参数: @@ -67,7 +67,7 @@ } ``` - [点此查看完整示例](stat_level.md#sample)如何添加关卡失败打点代码 + [点此查看完整示例](stat_level.md#sample)如何添加关卡onHide打点代码 3. #### **logLevelFail** @@ -112,7 +112,8 @@ } ```
完整示例,以上四个接口使用场景: -> 监听游戏wx.onHide关卡数据上报后上报(需要屏蔽掉复活、失败、成功状态),在执行wx.onHide时候,SDK会发出名为'app.hide'的自定义事件,可使用PCSDK.event.bindEvent监听该事件,使用PCSDK.event.removeEvent移除对应监听事件,[详细文档event模块文档请阅读event事件模块](evennt.md)。 +> 游戏监听wx.onHide回调中上报关卡onHide隐藏打点(需要屏蔽掉复活、失败、成功状态)。 +> SDK中监听了wx.onHide事件,当游戏onHide时,SDK会发送事件名为'app.hide'的自定义事件,开发者可在代码中使用PCSDK.event.bindEvent监听该事件,使用PCSDK.event.removeEvent移除对应监听事件,[详细文档event模块文档请阅读event事件模块](evennt.md)。 ```javascript /** -- libgit2 0.21.0