Commit e6f13bf69475fd4854ad5072112cf681e998bfe4
1 parent
598d14fd
Exists in
master
1
Showing
6 changed files
with
299 additions
and
31 deletions
Show diff stats
data.md
| ... | ... | @@ -5,7 +5,7 @@ |
| 5 | 5 | |
| 6 | 6 | #### **简介** |
| 7 | 7 | |
| 8 | -此模块为开发者提供游戏用到的一些数据信息,例如:config.js配置的GameId,ChannelId、从分享链接进入query携带的参数(share_id/share_key/invite_user_uid/channel_id)、setLogind设置的用户ID(userId)和用户注册时间(regTime)等等,详细请阅读下面的api。 | |
| 8 | +此模块为开发者提供游戏用到的一些数据信息,例如:config.js配置的GameId,ChannelId、从分享链接进入query携带的参数(share_id/share_key/user_invite_uid/channel_id)、setLogind设置的用户ID(userId)和用户注册时间(regTime)等等,详细请阅读下面的api。 | |
| 9 | 9 | |
| 10 | 10 | |
| 11 | 11 | ... | ... |
download.md
| ... | ... | @@ -8,8 +8,9 @@ |
| 8 | 8 | |
| 9 | 9 | **新增:** |
| 10 | 10 | |
| 11 | -1. 移除掉stat模块的onlineTimeLen和logout api | |
| 12 | -2. 微信小游戏引入GameIcon、GameBanner、GamePortal组件 | |
| 11 | +1. 移除掉stat模块的onlineTimeLen和logout api。 | |
| 12 | +2. 微信小游戏引入GameIcon、GameBanner、GamePortal组件。 | |
| 13 | +3. config.js添加积分投放IntegralChannelId参数,用于积分投放渠道统计。 | |
| 13 | 14 | |
| 14 | 15 | ## [v1.0.0.2 下载](https://dep.miso-lab.com/sdkword/versions/sdk-out-v1.0.0.2.zip) |
| 15 | 16 | |
| ... | ... | @@ -21,7 +22,7 @@ |
| 21 | 22 | |
| 22 | 23 | **新增:** |
| 23 | 24 | |
| 24 | -1. 外部游戏修改setLogind接口为setLoginInfo( { openId: strinng , retTime: number } ); | |
| 25 | +1. 外部游戏修改setLogind接口为setLoginInfo( { openId: strinng , retTime: number } )。 | |
| 25 | 26 | 2. loadingFinish传递isActive参数,isActive为true SDK在loadingFinish结束后自动调用active。 |
| 26 | 27 | |
| 27 | 28 | ## [v1.0.0.1 下载](https://dep.miso-lab.com/sdkword/versions/sdk-out-v1.0.0.1.zip) |
| ... | ... | @@ -46,15 +47,15 @@ |
| 46 | 47 | |
| 47 | 48 | **修复:** |
| 48 | 49 | |
| 49 | -1. SDK外部版本不需要接入方调用stat 模块launch接口,SDK启动时候自动调用 | |
| 50 | -2. QQ轻游戏分享不成功回调的问题 | |
| 51 | -3. QQ轻游戏banner广告不贴底部的问题 | |
| 50 | +1. SDK外部版本不需要接入方调用stat 模块launch接口,SDK启动时候自动调用。 | |
| 51 | +2. QQ轻游戏分享不成功回调的问题。 | |
| 52 | +3. QQ轻游戏banner广告不贴底部的问题。 | |
| 52 | 53 | |
| 53 | 54 | **新增:** |
| 54 | 55 | |
| 55 | -1. config.js配置新增IsOnlineAutoUse、IsOnlineDebug、ShareRightKey配置参数 | |
| 56 | +1. config.js配置新增IsOnlineAutoUse、IsOnlineDebug、ShareRightKey配置参数。 | |
| 56 | 57 | |
| 57 | - 在线参数获取通过配置决定是否启动拉取,右上角分享配置进行读取shareKey | |
| 58 | + 在线参数获取通过配置决定是否启动拉取,右上角分享配置进行读取shareKey。 | |
| 58 | 59 | |
| 59 | -2. SDK分享模块不区分内部还是外部游戏,都引入分享/视频模块功能 | |
| 60 | +2. SDK分享模块不区分内部还是外部游戏,都引入分享/视频模块功能。 | |
| 60 | 61 | ... | ... |
event.md
| ... | ... | @@ -3,8 +3,273 @@ |
| 3 | 3 | |
| 4 | 4 | 事件本质是一种通信方式,是一种消息,只有存在多个对象,多个模块的情况下,才有可能需要用到事件进行通信。 |
| 5 | 5 | |
| 6 | -有时我们还需要自定义事件以满足特定的需求,比如小模块之间的通信,传递信息等。开发者游戏项目和PCSDK属于两个不同的模块,PCSDK会在SDK内部处理一些业务,想要把这些处理结果告知开发者,那么自定义事件就派上用场了。 | |
| 6 | +开发者游戏项目和PCSDK属于两个不同的模块,PCSDK会在SDK内部处理一些业务,想要把这些处理结果告知开发者,那么自定义事件就派上用场了,SDK封装了一个event模块:PCSDK.event,开发者可使用这个模块接收SDK内部派发的消息,也可以应用在游戏中不同模块中通信的情况。 | |
| 7 | 7 | |
| 8 | -例如: | |
| 8 | +<font color="red">PCSDK内部派发了以下几个内部消息,开发者可根据实际功能需要使用PCSDK.event api监听这些消息:</font> | |
| 9 | 9 | |
| 10 | -SDK中对微信小游戏的生命周期onShow/onHide处理后,会发送一个'app.show'/'app.hide'事件 | |
| 10 | +> 1、app.show:多平台的onShow事件消息,例如微信小游戏、QQ轻游戏的onShow事件。使用方式: | |
| 11 | +> | |
| 12 | +> **PCSDK.event.add( 'app.show' , 处理此消息的事件函数, 事件函数上下文)** | |
| 13 | + | |
| 14 | +> 2、app.hide: 多平台的onHide事件消息,例如微信小游戏、QQ轻游戏的onHide事件。使用方式: | |
| 15 | +> | |
| 16 | +> **PCSDK.event.add( 'app.hide' , 处理此消息的事件函数, 事件函数上下文)** | |
| 17 | + | |
| 18 | +> 3、tactic.update:推送策略更新事件消息,接入[分享视频模块(shareVideo)](share.md)后,某个功能点当前分享/视频完成后,下一次推送策略类型会通过这个消息发送处理,开发者监听这个消息,可处理游戏页面上的ui展示(如:视频分享icon、视频分享文案等),[查看完整示例](share.md#detail)。使用方式: | |
| 19 | +> | |
| 20 | +> **PCSDK.event.add( 'tactic.update' , 处理此消息的事件函数, 事件函数上下文)** | |
| 21 | + | |
| 22 | + | |
| 23 | +#### **接入API**: | |
| 24 | + | |
| 25 | +| **名称** | **功能说明** | | |
| 26 | +| ---------------- | ------------------------------------------------------------ | | |
| 27 | +| PCSDK.event.add | 添加一个事件监听:传入参数为事件类型名称、触发函数func、触发函数的执行上下文 | | |
| 28 | +| PCSDK.event.once | 添加一个事件监听,执行一次后会自动移除此事件监听 | | |
| 29 | +| PCSDK.event.emit | 触发事件监听:执行所绑定的事件类型对应的触发函数 | | |
| 30 | +| PCSDK.event.remove | 移除事件监听:移除添加的事件类型的触发函数 | | |
| 31 | +| PCSDK.event.removeAll | 移除所有事件监听:移除添加的事件类型下所有该类型的触发函数 | | |
| 32 | + | |
| 33 | +1. **add** | |
| 34 | + ```javascript | |
| 35 | + PCSDK.event.add( evt_name: string, listener: Function, context: any ): PCSDK.event | |
| 36 | + ``` | |
| 37 | + | |
| 38 | + 定义:添加一个事件监听:传入参数为事件类型名称、触发函数func、触发函数的执行上下文。与之对应的是移除事件监听:PCSDK.event.remove:页面销毁或者关闭的时候移除监听 | |
| 39 | + | |
| 40 | + 参数: | |
| 41 | + | |
| 42 | + ```javascript | |
| 43 | + evt_name: string 必传 事件类型名称 | |
| 44 | + | |
| 45 | + listener: Function 必传 触发函数func,事件处理监听函数 | |
| 46 | + | |
| 47 | + context: any 必传 触发函数func执行上下文 | |
| 48 | + ``` | |
| 49 | + 返回值: | |
| 50 | + | |
| 51 | + ```javascript | |
| 52 | + PCSDK.event | |
| 53 | + 返回的是event对象,方便链式调用, 例如: | |
| 54 | + PCSDK.event.add('update.money', () => { }, this ) | |
| 55 | + .add('update.exp', () => { }, this ); | |
| 56 | + ``` | |
| 57 | + <div id="event_add"></div> | |
| 58 | + 示例:游戏中进入Home场景监听金币更新函数,更新金币ui界面的值,关闭Home场景时,移除金币更新函数。 | |
| 59 | + | |
| 60 | + ```javascript | |
| 61 | + export default class HomeScene extends BaseView{ | |
| 62 | + protected addEvent() { | |
| 63 | + super.addEvent(); | |
| 64 | + // 添加注册金币更新事件监听 | |
| 65 | + PCSDK.event.add(EventEnum.UPDATE_MONEY, this.handleUpdateMoney, this); | |
| 66 | + } | |
| 67 | + | |
| 68 | + protected removeEvent() { | |
| 69 | + super.removeEvent(); | |
| 70 | + // 移除注册金币更新事件监听 | |
| 71 | + PCSDK.event.remove(EventEnum.UPDATE_MONEY, this.handleUpdateMoney, this); | |
| 72 | + } | |
| 73 | + | |
| 74 | + /** | |
| 75 | + * 更新金币ui | |
| 76 | + */ | |
| 77 | + private handleUpdateMoney( money: number ){ | |
| 78 | + this.txtCoin.text = `${money}`; | |
| 79 | + } | |
| 80 | + } | |
| 81 | + | |
| 82 | + /** | |
| 83 | + * event事件枚举 | |
| 84 | + */ | |
| 85 | + export enum EventEnum{ | |
| 86 | + UPDATE_MONEY = 'update.money' | |
| 87 | + } | |
| 88 | + ``` | |
| 89 | +2. **once** | |
| 90 | + ```javascript | |
| 91 | + PCSDK.event.once( evt_name: string, listener: Function, context?: any ): PCSDK.event | |
| 92 | + ``` | |
| 93 | + | |
| 94 | + 定义:添加一个事件监听,执行一次后会自动移除此事件监听 | |
| 95 | + | |
| 96 | + 参数: | |
| 97 | + | |
| 98 | + ```javascript | |
| 99 | + evt_name: string 必传 事件类型名称 | |
| 100 | + | |
| 101 | + listener: Function 必传 触发函数func,事件处理监听函数 | |
| 102 | + | |
| 103 | + context: any 必传 触发函数func执行上下文 | |
| 104 | + ``` | |
| 105 | + 返回值: | |
| 106 | + | |
| 107 | + ```javascript | |
| 108 | + PCSDK.event | |
| 109 | + 返回的是event对象,方便链式调用, 例如: | |
| 110 | + PCSDK.event.once('update.money', () => { }, this ) | |
| 111 | + .once('update.exp', () => { }, this ); | |
| 112 | + ``` | |
| 113 | + | |
| 114 | + 示例:游戏中进入Home场景监听金币更新函数一次,该函数执行完一次后会自动移除该监听事件函数。 | |
| 115 | + | |
| 116 | + ```javascript | |
| 117 | + export default class HomeScene extends BaseView{ | |
| 118 | + protected open(){ | |
| 119 | + super.open(); | |
| 120 | + // 添加一次注册金币更新事件监听,该事件监听执行一次后,自动移除 | |
| 121 | + PCSDK.event.once(EventEnum.UPDATE_MONEY, this.handleUpdateMoney, this); | |
| 122 | + } | |
| 123 | + | |
| 124 | + /** | |
| 125 | + * 更新金币ui | |
| 126 | + */ | |
| 127 | + private handleUpdateMoney( money: number ){ | |
| 128 | + this.txtCoin.text = `${money}`; | |
| 129 | + } | |
| 130 | + } | |
| 131 | + | |
| 132 | + /** | |
| 133 | + * event事件枚举 | |
| 134 | + */ | |
| 135 | + export enum EventEnum{ | |
| 136 | + UPDATE_MONEY = 'update.money' | |
| 137 | + } | |
| 138 | + ``` | |
| 139 | +3. **emit** | |
| 140 | + ```javascript | |
| 141 | + PCSDK.event.emit( evt_name: string, ...args: any[] ): PCSDK.event | |
| 142 | + ``` | |
| 143 | + | |
| 144 | + 定义:派发事件监听消息:执行所绑定的事件类型对应的触发函数,可以传递一些触发函数需要的其他任意参数 | |
| 145 | + | |
| 146 | + 参数: | |
| 147 | + | |
| 148 | + ```javascript | |
| 149 | + evt_name: string 必传 事件类型名称 | |
| 150 | + | |
| 151 | + args: any[] 选传 触发函数需要的其他任意参数 | |
| 152 | + ``` | |
| 153 | + 返回值: | |
| 154 | + | |
| 155 | + ```javascript | |
| 156 | + PCSDK.event | |
| 157 | + 返回的是event对象,方便链式调用, 例如: | |
| 158 | + PCSDK.event.emit('update.money', 10000) | |
| 159 | + .emit('update.exp', 2, 1000 ); | |
| 160 | + ``` | |
| 161 | + | |
| 162 | + 示例:游戏中金币领取奖励弹出框,点击领奖后派发金币更新的消息 | |
| 163 | + | |
| 164 | + ```javascript | |
| 165 | + // RewardCoinPopwin弹出框领奖励后,派发update.money消息 | |
| 166 | + export default class RewardCoinPopwin extends BaseView{ | |
| 167 | + private rewardCoin: number; | |
| 168 | + | |
| 169 | + protected open(){ | |
| 170 | + super.open(); | |
| 171 | + this.rewardCoin = 10000000; | |
| 172 | + } | |
| 173 | + | |
| 174 | + protected addEvent() { | |
| 175 | + super.addEvent(); | |
| 176 | + this.btnReward.on(Laya.Event.CLICK, this, this.onReward); | |
| 177 | + } | |
| 178 | + | |
| 179 | + protected removeEvent() { | |
| 180 | + super.removeEvent(); | |
| 181 | + this.btnReward.off(Laya.Event.CLICK, this, this.onReward); | |
| 182 | + } | |
| 183 | + | |
| 184 | + /** | |
| 185 | + * 金币领取奖励 | |
| 186 | + */ | |
| 187 | + private onReward(ev: Laya.Event){ | |
| 188 | + // 派发金币更新的消息,并把添加的金币传递 | |
| 189 | + PCSDK.event.emit(EventEnum.UPDATE_MONEY, this.rewardCoin ); | |
| 190 | + } | |
| 191 | + } | |
| 192 | + | |
| 193 | + // HomeScene监听update.money消息,处理加金币操作 | |
| 194 | + export default class HomeScene extends BaseView{ | |
| 195 | + protected addEvent() { | |
| 196 | + super.addEvent(); | |
| 197 | + // 添加注册金币更新事件监听 | |
| 198 | + PCSDK.event.add(EventEnum.UPDATE_MONEY, this.handleUpdateMoney, this); | |
| 199 | + } | |
| 200 | + | |
| 201 | + protected removeEvent() { | |
| 202 | + super.removeEvent(); | |
| 203 | + // 移除注册金币更新事件监听 | |
| 204 | + PCSDK.event.remove(EventEnum.UPDATE_MONEY, this.handleUpdateMoney, this); | |
| 205 | + } | |
| 206 | + | |
| 207 | + /** | |
| 208 | + * 更新金币ui | |
| 209 | + */ | |
| 210 | + private handleUpdateMoney( addMoney: number ){ | |
| 211 | + this.txtAddCoin.text = `${addMoney}`; | |
| 212 | + } | |
| 213 | + } | |
| 214 | + | |
| 215 | + /** | |
| 216 | + * event事件枚举 | |
| 217 | + */ | |
| 218 | + export enum EventEnum{ | |
| 219 | + UPDATE_MONEY = 'update.money' | |
| 220 | + } | |
| 221 | + ``` | |
| 222 | + | |
| 223 | +4. **remove** | |
| 224 | + ```javascript | |
| 225 | + PCSDK.event.remove( evt_name: string, listener: Function, context?: any ): PCSDK.event | |
| 226 | + ``` | |
| 227 | + | |
| 228 | + 定义:移除事件监听:移除添加的事件类型的触发函数。 | |
| 229 | + | |
| 230 | + 参数: | |
| 231 | + | |
| 232 | + ```javascript | |
| 233 | + evt_name: string 必传 事件类型名称 | |
| 234 | + | |
| 235 | + listener: Function 必传 触发函数func,事件处理监听函数 | |
| 236 | + | |
| 237 | + context: any 必传 触发函数func执行上下文 | |
| 238 | + ``` | |
| 239 | + 返回值: | |
| 240 | + | |
| 241 | + ```javascript | |
| 242 | + PCSDK.event | |
| 243 | + 返回的是event对象,方便链式调用, 例如: | |
| 244 | + PCSDK.event.remove('update.money', () => { }, this ) | |
| 245 | + .remove('update.exp', () => { }, this ); | |
| 246 | + ``` | |
| 247 | + | |
| 248 | + 示例:[见上例](event.md#event_add) | |
| 249 | + | |
| 250 | +5. **removeAll** | |
| 251 | + ```javascript | |
| 252 | + PCSDK.event.removeAll( evt_name: string ): PCSDK.event | |
| 253 | + ``` | |
| 254 | + | |
| 255 | + 定义:移除所有事件监听:移除添加的事件类型下所有该类型的触发函数 | |
| 256 | + | |
| 257 | + 参数: | |
| 258 | + | |
| 259 | + ```javascript | |
| 260 | + evt_name: string 必传 事件类型名称 | |
| 261 | + ``` | |
| 262 | + 返回值: | |
| 263 | + | |
| 264 | + ```javascript | |
| 265 | + PCSDK.event | |
| 266 | + 返回的是event对象,方便链式调用, 例如: | |
| 267 | + PCSDK.event.removeAll('update.money') | |
| 268 | + .removeAll('update.exp'); | |
| 269 | + ``` | |
| 270 | + | |
| 271 | + 示例: | |
| 272 | + | |
| 273 | + 移除游戏中所有update.money事件监听:PCSDK.event.removeAll('update.money'); | |
| 274 | + | |
| 275 | + 移除游戏中所有update.exp事件监听:PCSDK.event.removeAll('update.exp'); | ... | ... |
install.md
| ... | ... | @@ -79,6 +79,7 @@ |
| 79 | 79 | }, |
| 80 | 80 | GameId: 0, // 必填,游戏ID,运营提供; |
| 81 | 81 | ChannelId: 0, // 必填,游戏渠道ID,运营提供; |
| 82 | + IntegralChannelId: 0, // 必填,积分投放渠道ID,运营提供; | |
| 82 | 83 | Secret: '***请配置你的Secret***', // 必填,游戏的secret key |
| 83 | 84 | MidasPay: { // 米大师虚拟支付配置 |
| 84 | 85 | OfferId: "0", // 在米大师申请的应用id |
| ... | ... | @@ -179,9 +180,11 @@ |
| 179 | 180 | |
| 180 | 181 | 10. **ChannelId:必填,游戏渠道id,请联系运营人员提供** |
| 181 | 182 | |
| 182 | -11. **Secret:必填,游戏 Secret Key,请联系运营人员提供** | |
| 183 | +11. **IntegralChannelId:必填,积分投放渠道ID,运营提供** | |
| 183 | 184 | |
| 184 | -12. **MidasPay( object ):**米大水虚拟支付配置,没有接入微信的米大师支付,请注意下面规则 | |
| 185 | +12. **Secret:必填,游戏 Secret Key,请联系运营人员提供** | |
| 186 | + | |
| 187 | +13. **MidasPay( object ):**米大水虚拟支付配置,没有接入微信的米大师支付,请注意下面规则 | |
| 185 | 188 | |
| 186 | 189 | OfferId:在米大师申请的应用id,没有接入米大师,默认为"0" |
| 187 | 190 | ... | ... |
platform.md
share.md
| ... | ... | @@ -410,7 +410,6 @@ |
| 410 | 410 | 3、<font color="#FF0000">分享或者视频后,SDK会发送一个tactic.update的消息过来,使用PCSDK.event.add注册监听,PCSDK.event.remove移除监听(PCSDK.event详细了解请查看[事件模块](event.md)),监听事件处理下一次推送显示ui状态:执行一下initRewardUI。</font> |
| 411 | 411 | |
| 412 | 412 | 4、给三个按钮都注册事件:onReward |
| 413 | - | |
| 414 | 413 | ```javascript |
| 415 | 414 | // DiamondDoublePopwin.ts文件 |
| 416 | 415 | export default class DiamondDoublePopwin extends BaseView { |
| ... | ... | @@ -427,27 +426,27 @@ |
| 427 | 426 | } |
| 428 | 427 | |
| 429 | 428 | protected removeEvent() { |
| 430 | - super.removeEvent(); | |
| 431 | - this.btnFree.off(Laya.Event.CLICK, this, this.onReward); | |
| 432 | - this.btnShare.off(Laya.Event.CLICK, this, this.onReward); | |
| 433 | - this.btnVideo.off(Laya.Event.CLICK, this, this.onReward); | |
| 434 | - // PCSDK.event.remove移除监听SDK发送的消息:tactic.update | |
| 435 | - PCSDK.event.remove('tactic.update', this.initRewardUI, this); | |
| 429 | + super.removeEvent(); | |
| 430 | + this.btnFree.off(Laya.Event.CLICK, this, this.onReward); | |
| 431 | + this.btnShare.off(Laya.Event.CLICK, this, this.onReward); | |
| 432 | + this.btnVideo.off(Laya.Event.CLICK, this, this.onReward); | |
| 433 | + // PCSDK.event.remove移除监听SDK发送的消息:tactic.update | |
| 434 | + PCSDK.event.remove('tactic.update', this.initRewardUI, this); | |
| 436 | 435 | } |
| 437 | 436 | |
| 438 | 437 | // 每次打开此popwin执行onOpen |
| 439 | 438 | protected onOpen(){ |
| 440 | - super.onOpen(); | |
| 441 | - // 界面打开 | |
| 442 | - this.initRewardUI(); | |
| 439 | + super.onOpen(); | |
| 440 | + // 界面打开 | |
| 441 | + this.initRewardUI(); | |
| 443 | 442 | } |
| 444 | 443 | |
| 445 | 444 | // 领取奖励操作 |
| 446 | 445 | private onReward(){ |
| 447 | - PCSDK.shareVideo.dispatch( ShareVideoKeys.DiamondDouble.toString(), { | |
| 446 | + PCSDK.shareVideo.dispatch( ShareVideoKeys.DiamondDouble.toString(), { | |
| 448 | 447 | success: this.handleReward, |
| 449 | 448 | context: this |
| 450 | - } ) | |
| 449 | + } ); | |
| 451 | 450 | } |
| 452 | 451 | |
| 453 | 452 | // 分享/视频成功后回调处理函数:发奖励 |
| ... | ... | @@ -472,7 +471,7 @@ |
| 472 | 471 | case ShareVideoType.Share: // 同步分享 |
| 473 | 472 | case ShareVideoType.ShareAysnc: // 异步分享 |
| 474 | 473 | case ShareVideoType.ShareIntegral: // 分享积分 |
| 475 | - // 分享ui状态 | |
| 474 | + // 分享ui状态 | |
| 476 | 475 | this.stat_share.play(0,false); |
| 477 | 476 | // 等同于 |
| 478 | 477 | // this.btnFree.visible = false; |
| ... | ... | @@ -482,7 +481,7 @@ |
| 482 | 481 | |
| 483 | 482 | case ShareVideoType.Video: // 视频 |
| 484 | 483 | case ShareVideoType.VideoToShare: // 无视频则分享 |
| 485 | - // 视频ui状态 | |
| 484 | + // 视频ui状态 | |
| 486 | 485 | this.stat_video.play(0,false); |
| 487 | 486 | // 等同于 |
| 488 | 487 | // this.btnFree.visible = false; |
| ... | ... | @@ -491,7 +490,7 @@ |
| 491 | 490 | break; |
| 492 | 491 | |
| 493 | 492 | default: // 无视频和无分享 |
| 494 | - // 既不显示分享ui又不显示视频ui,直接领奖ui状态 | |
| 493 | + // 既不显示分享ui又不显示视频ui,直接领奖ui状态 | |
| 495 | 494 | this.stat_free.play(0,false); |
| 496 | 495 | // 等同于 |
| 497 | 496 | // this.btnFree.visible = true; | ... | ... |