Commit 026f6d130435fc2cee9f2d1aee8426a61a1575c8
1 parent
7ba8d769
Exists in
master
动态参数模块
Showing
3 changed files
with
172 additions
and
6 deletions
Show diff stats
SUMMARY.md
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | * [自定义事件打点✔️](stat_event.md) | 13 | * [自定义事件打点✔️](stat_event.md) |
14 | * [交叉推广位✔️](stat_ads.md) | 14 | * [交叉推广位✔️](stat_ads.md) |
15 | * [分享视频模块](share.md) | 15 | * [分享视频模块](share.md) |
16 | -* [在线配置模块](online.md) | 16 | +* [配置参数模块️✔️](online.md) |
17 | * [多平台接口模块](platform.md) | 17 | * [多平台接口模块](platform.md) |
18 | * [支付打点](platform_pay.md) | 18 | * [支付打点](platform_pay.md) |
19 | * [授权按钮](platform_common.md#userbtn) | 19 | * [授权按钮](platform_common.md#userbtn) |
@@ -0,0 +1,165 @@ | @@ -0,0 +1,165 @@ | ||
1 | + | ||
2 | +# 配置参数模块 | ||
3 | + | ||
4 | +------ | ||
5 | + | ||
6 | +#### **简介** | ||
7 | + | ||
8 | +在线配置参数是噗嗤游戏开放的一个新模块功能,可以让开发者在后台配置参数中动态修改游戏中的参数值。例如:动态修改游戏的数值,小到一个简单开关0/1切换、一个简单的数字配置;打到一个游戏json配置等等。 | ||
9 | + | ||
10 | +该模块借鉴了[友盟在线配置参数](http://www.it610.com/article/4896789.htm)的设计思路。 | ||
11 | + | ||
12 | + | ||
13 | + | ||
14 | +#### **后台使用** | ||
15 | + | ||
16 | +设置在线配置参数,登录后台->头部tab切换到【游戏数据】->【配置相关】->【配置参数】可新增、编辑修改参数值,配置完毕后,通过online模块相关的api使用: | ||
17 | + | ||
18 | + | ||
19 | + | ||
20 | + | ||
21 | + | ||
22 | +#### **接入API:** | ||
23 | + | ||
24 | +| **名称** | **功能说明** | | ||
25 | +| ------------------------------- | ------------------------------------------------------------ | | ||
26 | +| PCSDK.online.updateOnlineConfig | 拉取后台配置的配置参数数据,可代码中手动调用,也可以通过config.js中配置SDK主动拉取,注意:使用前请详细[阅读config.js的IsOnlineAutoUse和IsOnlineDebug参数详解](install.md#config_env) | | ||
27 | +| PCSDK.online.getParamsInt | 根据在线参数key获取number类型参数值,适合配置参数为:整数、浮点数 | | ||
28 | +| PCSDK.online.getParamsObj | 根据在线参数key获取object类型参数值,适合配置参数为:数组、json对象 | | ||
29 | +| PCSDK.online.getParamsString | 根据在线参数key获取string类型参数值,适合配置参数为:字符串、json字符串 | | ||
30 | + | ||
31 | + | ||
32 | + | ||
33 | +1. ##### **updateOnlineConfig** | ||
34 | + | ||
35 | + ```javascript | ||
36 | + PCSDK.online.updateOnlineConfig(): Promise<any> | ||
37 | + ``` | ||
38 | + | ||
39 | + 定义:拉取后台配置的配置参数数据, | ||
40 | + | ||
41 | + 提示: | ||
42 | + | ||
43 | + > [config.js中配置IsOnlineAutoUse](install.md#config_env)为true:SDK启动时自动去拉取在线配置参数,开发者不需要调用此接口,不然会导致重复拉取 | ||
44 | + > | ||
45 | + > [config.js中配置IsOnlineAutoUse](install.md#config_env)为false:有两种理解方式:1)不接入使用在线配置参数模块;2)接入使用在线配置参数模块,开发者自己手动调用updateOnlineConfig api处理逻辑。 | ||
46 | + > | ||
47 | + > 下面示例会演示两种不同配置的使用范例: | ||
48 | + | ||
49 | + 参数: | ||
50 | + | ||
51 | + ``` | ||
52 | + 无 | ||
53 | + ``` | ||
54 | + | ||
55 | + 返回值: | ||
56 | + | ||
57 | + ``` | ||
58 | + Promise<any> | ||
59 | + ``` | ||
60 | + | ||
61 | + <div id="sample"></div> | ||
62 | + | ||
63 | + 示例1:config.js配置IsOnlineAutoUse为false,开发者调用updateOnlineConfig api手动拉取在线配置参数数据 | ||
64 | + | ||
65 | + ```javascript | ||
66 | + // 后台 ->【游戏数据】->【配置参数】栏配置了:是否显示微信插屏广告、交叉推广位是否展示动态开关 | ||
67 | + PCSDK.online.updateOnlineConfig().then(() => { | ||
68 | + // 使用1:获取是否后台动态配置开启插屏广告,1为开启,0为关闭 | ||
69 | + let isInterstitialAd = PCSDK.online.getParamsInt('interstitial_ad_open', 0) === 1; | ||
70 | + // isInterstitialAd && '显示插屏广告'; | ||
71 | + | ||
72 | + // 使用2:获取动态多个广告位开启的配置 | ||
73 | + let pcGameOpenMap = PCSDK.online.getParamsObj('pc_games_open', { "Drawer": 0, "GuessLike": 0, "Cross": 0 }); | ||
74 | + // pcGameOpenMap.Drawer === 1 && '显示抽屉推广位'; | ||
75 | + // pcGameOpenMap.GuessLike === 1 && '显示猜你喜欢推广位'; | ||
76 | + // pcGameOpenMap.Cross === 1 && '显示交叉推广位'; | ||
77 | + | ||
78 | + // 使用3:获取签到配置 | ||
79 | + let signRewardCfg = PCSDK.online.getParamsObj('sign_reward_cfg', [100,300,500,700,900,2000,3000]); | ||
80 | + | ||
81 | + // 使用4:获取动态bannerUid | ||
82 | + let bannerUid = PCSDK.online.getParamsString('banner_common_uid', 'adunit-fe38438f074c717f'); | ||
83 | + // bannerUid && '显示banner'; | ||
84 | + }); | ||
85 | + ``` | ||
86 | + | ||
87 | + 示例2:config.js配置IsOnlineAutoUse为true,SDK启动时会自动调用 updateOnlineConfig api拉取在线配置参数数据 | ||
88 | + | ||
89 | + ```javascript | ||
90 | + let isInterstitialAd = PCSDK.online.getParamsInt('interstitial_ad_open', 0) === 1; | ||
91 | + let pcGameOpenMap = PCSDK.online.getParamsObj('pc_games_open', { "Drawer": 0, "GuessLike": 0, "Cross": 0 }); | ||
92 | + ``` | ||
93 | + | ||
94 | + | ||
95 | + | ||
96 | +2. ##### **getParamsInt** | ||
97 | + | ||
98 | + ```javascript | ||
99 | + PCSDK.online.getParamsInt( key: string, defaultVal?: number ): number | ||
100 | + ``` | ||
101 | + | ||
102 | + 定义:根据在线参数key获取number类型参数值,适合配置参数为:整数、浮点数 | ||
103 | + | ||
104 | + 参数: | ||
105 | + | ||
106 | + ```javascript | ||
107 | + key: string 必传 后台 ->【配置参数】配置的key | ||
108 | + defaultVal: number 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值 | ||
109 | + ``` | ||
110 | + | ||
111 | + 返回值: | ||
112 | + | ||
113 | + ``` | ||
114 | + number | ||
115 | + ``` | ||
116 | + | ||
117 | + 示例:[查看上面的示例代码](online.md#sample) | ||
118 | + | ||
119 | +3. **getParamsObj** | ||
120 | + | ||
121 | + ```javascript | ||
122 | + PCSDK.online.getParamsObj( key: string, defaultVal?: any ): any | ||
123 | + ``` | ||
124 | + | ||
125 | + 定义:根据在线参数key获取object类型参数值,适合配置参数为:数组、json对象 | ||
126 | + | ||
127 | + 参数: | ||
128 | + | ||
129 | + ```javascript | ||
130 | + key: string 必传 后台 ->【配置参数】配置的key | ||
131 | + defaultVal: any 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值 | ||
132 | + ``` | ||
133 | + | ||
134 | + 返回值: | ||
135 | + | ||
136 | + ``` | ||
137 | + object | array | null | ||
138 | + ``` | ||
139 | + | ||
140 | + 示例:[查看上面的示例代码](online.md#sample) | ||
141 | + | ||
142 | +1. **getParamsString** | ||
143 | + | ||
144 | + ```javascript | ||
145 | + PCSDK.online.getParamsString( key: string, defaultVal?: string ): string | ||
146 | + ``` | ||
147 | + | ||
148 | + 定义:根据在线参数key获取string类型参数值,适合配置参数为:字符串、json字符串 | ||
149 | + | ||
150 | + 参数: | ||
151 | + | ||
152 | + ```javascript | ||
153 | + key: string 必传 后台 ->【配置参数】配置的key | ||
154 | + defaultVal: string 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值 | ||
155 | + ``` | ||
156 | + | ||
157 | + 返回值: | ||
158 | + | ||
159 | + ``` | ||
160 | + string | ||
161 | + ``` | ||
162 | + | ||
163 | + 示例:[查看上面的示例代码](online.md#sample) | ||
164 | + | ||
165 | + | ||
0 | \ No newline at end of file | 166 | \ No newline at end of file |
stat_level.md
@@ -45,7 +45,7 @@ | @@ -45,7 +45,7 @@ | ||
45 | } | 45 | } |
46 | ``` | 46 | ``` |
47 | 47 | ||
48 | - [点此查看完整示例](stat_level.md#sample)如何添加关卡失败打点代码 | 48 | + [点此查看完整示例](stat_level.md#sample)如何添加关卡复活成功打点代码 |
49 | 49 | ||
50 | 2. #### **logLevelHide** | 50 | 2. #### **logLevelHide** |
51 | 51 | ||
@@ -53,8 +53,8 @@ | @@ -53,8 +53,8 @@ | ||
53 | PCSDK.stat.logLevelHide(levelId: string | number , opts?: { attr: number } ): void | 53 | PCSDK.stat.logLevelHide(levelId: string | number , opts?: { attr: number } ): void |
54 | ``` | 54 | ``` |
55 | 55 | ||
56 | - > 定义:游戏中onHide时(监听wx.onHide事件)关卡退出数据上报。 | ||
57 | - > 需要屏蔽掉复活、失败、成功状态下onHide | 56 | + > 定义:游戏中onHide时(设置wx.onHide回调监听事件)关卡onHide数据上报。 |
57 | + > 需要屏蔽掉复活、失败、成功状态 | ||
58 | 58 | ||
59 | 参数: | 59 | 参数: |
60 | 60 | ||
@@ -67,7 +67,7 @@ | @@ -67,7 +67,7 @@ | ||
67 | } | 67 | } |
68 | ``` | 68 | ``` |
69 | 69 | ||
70 | - [点此查看完整示例](stat_level.md#sample)如何添加关卡失败打点代码 | 70 | + [点此查看完整示例](stat_level.md#sample)如何添加关卡onHide打点代码 |
71 | 71 | ||
72 | 3. #### **logLevelFail** | 72 | 3. #### **logLevelFail** |
73 | 73 | ||
@@ -112,7 +112,8 @@ | @@ -112,7 +112,8 @@ | ||
112 | } | 112 | } |
113 | ``` | 113 | ``` |
114 | <div id="sample"></div> 完整示例,以上四个接口使用场景: | 114 | <div id="sample"></div> 完整示例,以上四个接口使用场景: |
115 | -> 监听游戏wx.onHide关卡数据上报后上报(需要屏蔽掉复活、失败、成功状态),在执行wx.onHide时候,SDK会发出名为'app.hide'的自定义事件,可使用PCSDK.event.bindEvent监听该事件,使用PCSDK.event.removeEvent移除对应监听事件,[详细文档event模块文档请阅读event事件模块](evennt.md)。 | 115 | +> 游戏监听wx.onHide回调中上报关卡onHide隐藏打点(需要屏蔽掉复活、失败、成功状态)。 |
116 | +> SDK中监听了wx.onHide事件,当游戏onHide时,SDK会发送事件名为'app.hide'的自定义事件,开发者可在代码中使用PCSDK.event.bindEvent监听该事件,使用PCSDK.event.removeEvent移除对应监听事件,[详细文档event模块文档请阅读event事件模块](evennt.md)。 | ||
116 | 117 | ||
117 | ```javascript | 118 | ```javascript |
118 | /** | 119 | /** |