Commit 6a23c5dbb9a57d6c0cf1d5380de1caee8f7722ba
1 parent
e6f13bf6
Exists in
master
1
Showing
7 changed files
with
285 additions
and
108 deletions
Show diff stats
SUMMARY.md
| @@ -14,13 +14,11 @@ | @@ -14,13 +14,11 @@ | ||
| 14 | * [交叉推广位](stat_ads.md) | 14 | * [交叉推广位](stat_ads.md) |
| 15 | * [分享视频模块](share.md) | 15 | * [分享视频模块](share.md) |
| 16 | * [配置参数模块️](online.md) | 16 | * [配置参数模块️](online.md) |
| 17 | -* [多平台接口模块❎](platform.md) | ||
| 18 | - * [支付打点❎](platform_pay.md) | ||
| 19 | - * [授权按钮❎](platform_common.md#userbtn) | ||
| 20 | - * [检测自动更新❎](platform_common.md#autoupdate) | ||
| 21 | - * [打开客服消息❎](platform_common.md#service) | ||
| 22 | - * [震动接口❎](platform_common.md#vibrate) | ||
| 23 | - * [其他接口❎](platform_common.md#other) | 17 | +* [多平台接口模块](platform.md) |
| 18 | + * [支付打点](platform.md#logpay) | ||
| 19 | + * [检测自动更新](platform.md#checkUpdate) | ||
| 20 | + * [打开客服消息](platform.md#service) | ||
| 21 | + * [震动接口](platform.md#vibrate) | ||
| 24 | * [数据模块](data.md) | 22 | * [数据模块](data.md) |
| 25 | * [事件模块](event.md) | 23 | * [事件模块](event.md) |
| 26 | * [FAQ❎](faq.md) | 24 | * [FAQ❎](faq.md) |
| 27 | \ No newline at end of file | 25 | \ No newline at end of file |
103 KB
No preview for this file type
No preview for this file type
install.md
| @@ -60,9 +60,8 @@ | @@ -60,9 +60,8 @@ | ||
| 60 | 60 | ||
| 61 | 61 | ||
| 62 | 62 | ||
| 63 | - | ||
| 64 | * #### 根据运营提供的信息修改sdk文件夹下的**config**.js文件(可横向拖动查看查看更多====>)<div id="config"></div> | 63 | * #### 根据运营提供的信息修改sdk文件夹下的**config**.js文件(可横向拖动查看查看更多====>)<div id="config"></div> |
| 65 | - | 64 | +<div id="configJs"></div> |
| 66 | ```javascript | 65 | ```javascript |
| 67 | export default { | 66 | export default { |
| 68 | IsDebug: false, // 是否debug模式,debug模式会打印log,可使用stat模块setDebug api进行修改 | 67 | IsDebug: false, // 是否debug模式,debug模式会打印log,可使用stat模块setDebug api进行修改 |
platform.md
| 1 | -# 多平台接口模块 | 1 | +# 多平台接口模块:PCSDK.platform |
| 2 | 2 | ||
| 3 | ------ | 3 | ------ |
| 4 | 4 | ||
| 5 | #### **简介** | 5 | #### **简介** |
| 6 | 6 | ||
| 7 | -启动注册打点上报用户注册活跃数据,噗嗤管理后台为游戏提供用户数据统计:实时获取活跃、新增用户数、打开次数、在线时长......;注册转化统计。 | 7 | +所谓多平台指的是微信小游戏、QQ轻游戏、今日头条、oppo等游戏发布的平台。微信和QQ接口文档api相似度99%,微信、QQ、今日头条平台的接口api相似度80%以上,虽然相似度很高,但是仍需要针对差异性做一些处理。多平台接口模块就是想要在SDK内部去抹平了各个平台差异性的处理,达到同一个api调用,应用多个平台的作用。 |
| 8 | 8 | ||
| 9 | +#### **此模块是参照微信小游戏提供的api进行封装的公用方法,提供了以下游戏中常用到的功能:** | ||
| 9 | 10 | ||
| 11 | +**支付打点:logPay** (此模块保留logPay调用只是为了兼容已经接入的游戏,该api已经归类到【统计模块】下面的[支付打点](stat_pay.md)栏)。 | ||
| 10 | 12 | ||
| 11 | -#### **后台使用** | 13 | +**打开客服消息:openCustomerServiceConversation** 整理[wx.openCustomerServiceConversation](https://developers.weixin.qq.com/minigame/dev/api/open-api/customer-message/wx.openCustomerServiceConversation.html) |
| 12 | 14 | ||
| 13 | -完成启动注册打点后,登录后台->头部tab切换到【游戏数据】->【产品分析】->【实时数据】即可实时查看用户活跃、新增等信息: | ||
| 14 | - | 15 | +**检测版本更新:checkUpdate** 整理来自:[wx.getUpdateManager](https://developers.weixin.qq.com/minigame/dev/api/base/update/UpdateManager.html) |
| 15 | 16 | ||
| 16 | -点击【注册转化】可查看列表式显示新增、注册、加载完成等详细信息: | 17 | +**显示模态弹出框:showModal** 整理来自:[wx.showModal](https://developers.weixin.qq.com/minigame/dev/api/ui/interaction/wx.showModal.html) |
| 17 | 18 | ||
| 18 | - | 19 | +**复制文本:copy** 整理来自:[wx.setClipboardData](https://developers.weixin.qq.com/minigame/dev/api/device/clipboard/wx.setClipboardData.html) |
| 19 | 20 | ||
| 21 | +**长震动:vibrateLong** 整理来自:[wx.vibrateLong](https://developers.weixin.qq.com/minigame/dev/api/device/vibrate/wx.vibrateLong.html) | ||
| 20 | 22 | ||
| 23 | +**短震动:vibrateShort** 整理来自:[wx.vibrateShort](https://developers.weixin.qq.com/minigame/dev/api/device/vibrate/wx.vibrateShort.html) | ||
| 24 | + | ||
| 25 | +**更新转发属性:updateShareMenu** 整理来自:[wx.updateShareMenu](https://developers.weixin.qq.com/minigame/dev/api/share/wx.updateShareMenu.html) | ||
| 26 | + | ||
| 27 | +**微信小游戏推荐弹窗组件GamePortal:isGamePortalPlaying 与 gamePortalShow** 整理来自:[wx.createGamePortal](https://developers.weixin.qq.com/minigame/dev/api/game-portal/GameBanner.html) | ||
| 28 | + | ||
| 29 | +**微信小游戏推荐icon组件GameIcon:gameIconShow 与 gameIconDestroy** 整理来自:[wx.createGameIcon](https://developers.weixin.qq.com/minigame/dev/api/game-portal/wx.createGameIcon.html) | ||
| 30 | + | ||
| 31 | +**微信小游戏插屏广告组件InterstitialAd:isInterstitialPlaying 与 interstitialShow** 整理来自:[wx.createInterstitialAd](https://developers.weixin.qq.com/minigame/dev/api/ad/InterstitialAd.html) | ||
| 21 | 32 | ||
| 22 | 33 | ||
| 23 | 34 | ||
| @@ -25,150 +36,319 @@ | @@ -25,150 +36,319 @@ | ||
| 25 | 36 | ||
| 26 | | **名称** | **功能说明** | | 37 | | **名称** | **功能说明** | |
| 27 | | ------------------------ | ------------------------------------------------------------ | | 38 | | ------------------------ | ------------------------------------------------------------ | |
| 28 | -| PCSDK.stat.loadingFinish | 加载游戏资源完成时打点,不是微信代码包白屏加载完成,游戏loading自身cdn资源加载完成调用 | | ||
| 29 | -| PCSDK.stat.setLogind | 设置sdk必须要使用的用户id、第一次创建角色的注册时间,游戏接入方登录游戏服务器后调用 | | ||
| 30 | -| PCSDK.stat.active | 用户活跃/新增注册上报,切记在setLogind设置需要的信息过后使用(不限于使用位置),不然会导致新增注册数据统计异常 | | ||
| 31 | - | ||
| 32 | - | 39 | +| PCSDK.platform.logPay | 支付统计打点,支付完成(取消、成功、失败)的打点 | |
| 40 | +| PCSDK.platform.openCustomerServiceConversation | 进入客服会话,可打开一个普通的客服会话,也可打开客服会话发送体力、钻石和进入跳转充值等,[具体用法请看](platform.md#service)| | ||
| 41 | +| PCSDK.platform.checkUpdate | 检测版本是否有更新,如果版本更新会弹出确认框 | | ||
| 42 | +| PCSDK.platform.vibrateShort | 使手机发生较短时间的振动(15 ms) | | ||
| 43 | +| PCSDK.platform.vibrateLong | 使手机发生较长时间的振动(400 ms) | | ||
| 33 | 44 | ||
| 34 | 45 | ||
| 35 | 46 | ||
| 36 | 47 | ||
| 37 | 48 | ||
| 38 | -1. **loadingFinish** | 49 | +<div id="logpay"></div> |
| 50 | +1. **logPay** | ||
| 39 | 51 | ||
| 40 | ```javascript | 52 | ```javascript |
| 41 | - PCSDK.stat.loadingFinish(): void | 53 | + PCSDK.platform.logPay( params: object ): void |
| 42 | ``` | 54 | ``` |
| 43 | 55 | ||
| 44 | - 定义:加载游戏加载资源完成时打点 | 56 | + 定义:开发者游戏充值完成后,上报支付结果打点,支付结果类型:0(支付失败),1(支付成功),-1(取消支付)。该api需在[config.js中配置MidasPay](install.md#configJs)信息。 |
| 45 | 57 | ||
| 46 | 参数: | 58 | 参数: |
| 47 | 59 | ||
| 48 | ``` | 60 | ``` |
| 61 | + params object 必传 打点参数 | ||
| 62 | + { | ||
| 63 | + type: number 必传 支付类型:0(支付失败),1(支付成功),-1(取消支付); | ||
| 64 | + source: string 必传 游戏服务商生成的订单号,没有则为空字符串 | ||
| 65 | + amount: number 必传 实际支付金额,单位分 | ||
| 66 | + buy_id: string | number; 必传 商品ID | ||
| 67 | + buy_name: string; 必传 商品名称 | ||
| 68 | + item_info: string 必传 获得的道具内容:道具id及数量,逗号分隔,多项使用分号分隔 => 1,1;2,10;3,100 | ||
| 69 | + } | ||
| 70 | + ``` | ||
| 71 | + 返回值: | ||
| 72 | + | ||
| 73 | + ``` | ||
| 74 | + void | ||
| 49 | 无 | 75 | 无 |
| 50 | ``` | 76 | ``` |
| 51 | 77 | ||
| 52 | - 示例:加载完成游戏主界面图片、json资源打点 | 78 | + 示例:客户端游戏支付完成后上报支付打点,下例只是演示logPay用法 |
| 53 | 79 | ||
| 54 | ```javascript | 80 | ```javascript |
| 55 | - private async initEnv() { | ||
| 56 | - await SDKTools.env(Const.VERSION); | ||
| 57 | - this.loadRes(); | ||
| 58 | - this.loadLogin(); | ||
| 59 | - } | ||
| 60 | - | ||
| 61 | - // 开始加载资源 | ||
| 62 | - private loadRes() { | ||
| 63 | - LoaderManager.I.setCallback(this.onLoadedMain, this.onProgressMain, null, this).loadMain(); | ||
| 64 | - } | ||
| 65 | - | ||
| 66 | - // 资源加载完成 | ||
| 67 | - private onLoadedMain() { | ||
| 68 | - PCSDK.stat.loadingFinish() | ||
| 69 | - } | ||
| 70 | - | ||
| 71 | - // 更新资源加载进度条 | ||
| 72 | - private onProgressMain(ret) { | ||
| 73 | - let progress = ret.data; | ||
| 74 | - this.skin.txtProgress.text = Math.floor(progress * 100) + '%'; | 81 | + private reqPay() { |
| 82 | + Api.I.pay().then( ret => { | ||
| 83 | + switch(ret.code){ | ||
| 84 | + case 1: // 支付成功回调处理 | ||
| 85 | + PCSDK.platform.logPay({ | ||
| 86 | + type: 1, // 成功支付 | ||
| 87 | + source: "10000400", // 订单号,没有则为空字符串 | ||
| 88 | + amount: 10 * 100, // 10元 | ||
| 89 | + buy_id: 58, // 支付的商品id | ||
| 90 | + buy_name: "钻石*152,金币*188888888", | ||
| 91 | + item_info: "40,152;90,188888888" // 例如 钻石id:40 金币id:90 | ||
| 92 | + }); | ||
| 93 | + break; | ||
| 94 | + | ||
| 95 | + case 0: // 支付失败回调处理 | ||
| 96 | + PCSDK.platform.logPay({ | ||
| 97 | + type: 0, // 失败支付 | ||
| 98 | + source: "10000400", // 订单号,没有则为空字符串 | ||
| 99 | + amount: 10 * 100, // 10元 | ||
| 100 | + buy_id: 58, // 支付的商品id | ||
| 101 | + buy_name: "钻石*152,金币*188888888", | ||
| 102 | + item_info: "40,152;90,188888888" // 例如 钻石id:40 金币id:90 | ||
| 103 | + }); | ||
| 104 | + break; | ||
| 105 | + | ||
| 106 | + case -1: // 支付取消回调处理 | ||
| 107 | + PCSDK.platform.logPay({ | ||
| 108 | + type: -1, // 取消支付 | ||
| 109 | + source: "10000400", // 订单号,没有则为空字符串 | ||
| 110 | + amount: 10 * 100, // 10元 | ||
| 111 | + buy_id: 58, // 支付的商品id | ||
| 112 | + buy_name: "钻石*152,金币*188888888", | ||
| 113 | + item_info: "40,152;90,188888888" // 例如 钻石id:40 金币id:90 | ||
| 114 | + }); | ||
| 115 | + break; | ||
| 116 | + } | ||
| 117 | + }); | ||
| 75 | } | 118 | } |
| 76 | ``` | 119 | ``` |
| 77 | - | ||
| 78 | -2. **setLogind** | 120 | +<div id="service"></div> |
| 121 | +2. **openCustomerServiceConversation** | ||
| 79 | 122 | ||
| 80 | ```javascript | 123 | ```javascript |
| 81 | - PCSDK.stat.setLogind( data: object ): void | 124 | + PCSDK.platform.openCustomerServiceConversation( params?: _CustomerServiceConversationObject ): void |
| 82 | ``` | 125 | ``` |
| 83 | 126 | ||
| 84 | - 定义:游戏登录完成,得到登录用户的用户id和用户第一次注册时间,设置SDK必需的用户信息 | 127 | + 定义:进入客服会话,可打开一个普通的客服会话,也可打开客服会话发送体力和进入跳转充值 |
| 85 | 128 | ||
| 86 | 参数: | 129 | 参数: |
| 87 | 130 | ||
| 88 | ```javascript | 131 | ```javascript |
| 89 | - data: object | ||
| 90 | -{ | ||
| 91 | - userId: string | number 必传, 用户唯一标识id | ||
| 92 | - regTime: number 必传,用户第一次创建角色的注册时间戳 | 132 | + params _CustomerServiceConversationObject 选传,不传递打开一个普通的客户会话。[参数说明参照](https://developers.weixin.qq.com/minigame/dev/api/open-api/customer-message/wx.openCustomerServiceConversation.html) |
| 133 | + { | ||
| 134 | + sessionFrom string 选传 会话来源 | ||
| 135 | + showMessageCard boolean 选传 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息 | ||
| 136 | + sendMessageTitle string 选传 会话内消息卡片标题 | ||
| 137 | + sendMessagePath string 选传 会话内消息卡片路径 | ||
| 138 | + sendMessageImg string 选传 会话内消息卡片图片路径 | ||
| 139 | + success function 选传 接口调用成功的回调函数 | ||
| 140 | + fail function 选传 接口调用失败的回调函数 | ||
| 141 | + complete function 选传 接口调用结束的回调函数(调用成功、失败都会执行) | ||
| 93 | } | 142 | } |
| 94 | ``` | 143 | ``` |
| 95 | 144 | ||
| 96 | - 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟使用环境) | 145 | + 示例1:进入普通的客服会话 |
| 97 | 146 | ||
| 98 | ```javascript | 147 | ```javascript |
| 99 | - // 发起登录请求,得到登录数据信息,调用setLogind设置SDK用户信息 | ||
| 100 | - Api.login().then( data => { | ||
| 101 | - let { user_id, user_reg_time } = data; | ||
| 102 | - PCSDK.stat.setLogind({ | ||
| 103 | - userId: data.user_id, | ||
| 104 | - regTime: data.user_reg_time | ||
| 105 | - }); | ||
| 106 | - }); | 148 | + PCSDK.platform.openCustomerServiceConversation(); |
| 149 | + ``` | ||
| 150 | + 示例2:应用场景如进入客服会话跳转领取体力、钻石等等: 示例为跳转客服领取18888钻石奖励,success函数中记录数据状态(用于客服返回,执行onShow生命周期函数时逻辑判断)。 | ||
| 151 | + <iframe height=498 width=740 src="https://dep.miso-lab.com/sdkword/sdk_video_001.mp4" frameborder=0 allowfullscreen></iframe> | ||
| 152 | + | ||
| 153 | + ```javascript | ||
| 154 | + // 跳转客服领取18888钻石奖励,开发者可根据示例修改 | ||
| 155 | + PCSDK.platform.openCustomerServiceConversation({ | ||
| 156 | + showMessageCard: true, | ||
| 157 | + sendMessageTitle: '钻石已发送,点击领取钻石!', | ||
| 158 | + sendMessagePath: '', | ||
| 159 | + sendMessageImg: 'http://dep.miso-lab.com/mergeguns/bin/res/image/service_reward.png', // 图片icon对应的域名记得加入到request和download白名单中 | ||
| 160 | + success: () => { | ||
| 161 | + // 打开跳转客服成功,记录成功状态,在游戏全局注册的onShow监听通过判断这个状态去请求接口领取奖励 | ||
| 162 | + // 记录数据状态,onShow的时候读取数据状态判断,只是演示操作,可根据实际情况修改 | ||
| 163 | + AppDataManager.I.set('service.reward.data', { | ||
| 164 | + status: 1, // 可以领奖 | ||
| 165 | + reward: 18888 // 获得18888钻石 | ||
| 166 | + }); | ||
| 167 | + }, | ||
| 168 | + fail: (err) => { | ||
| 169 | + console.log("openCustomerServiceConversation fail: ", err); | ||
| 170 | + } | ||
| 171 | + }); | ||
| 172 | + | ||
| 173 | + // 在游戏中全局注册的onShow事件监听中检测是 | ||
| 174 | + // 游戏入口:Main.cs | ||
| 175 | + class Main { | ||
| 176 | + constructor() { | ||
| 177 | + this.init(); | ||
| 178 | + } | ||
| 179 | + | ||
| 180 | + private init() { | ||
| 181 | + PCSDK.event.add('app.show', this.onShow, this); // 等同于wx.onShow(this.onShow.bind(this)); | ||
| 182 | + PCSDK.event.add('app.hide', this.onHide, this); // 等同于wx.onHide(this.onHide.bind(this)); | ||
| 183 | + } | ||
| 184 | + | ||
| 185 | + private onShow(opts) { | ||
| 186 | + // 判断是否是来源于客服会话,上面的openCustomerServiceConversation的success设置的数据状态做判断 | ||
| 187 | + let serviceRewardData = AppDataManager.I.get('service.reward.data'); | ||
| 188 | + if (serviceRewardData && serviceRewardData.status === 1) { | ||
| 189 | + AppDataManager.I.set('service.reward.data', null); | ||
| 190 | + // 奖励发放,处理发放后的逻辑,比如每天只能领取一次的记录,防止重复刷奖励 | ||
| 191 | + } | ||
| 192 | + } | ||
| 193 | + | ||
| 194 | + private onHide(){ | ||
| 195 | + // 监听平台的onHide事件 | ||
| 196 | + } | ||
| 197 | + } | ||
| 107 | ``` | 198 | ``` |
| 199 | + 示例3:应用场景例如进入客服会话,success函数中记录数据状态(用于客服返回,执行onShow生命周期函数时逻辑判断),点击右下角的充值按钮后,跳转充值,充值完成后在onShow中处理:需要后台提供api接口,验证充值合理性并发放奖励,**此接口需要后端支持**。 | ||
| 200 | + <iframe height=498 width=740 src="https://dep.miso-lab.com/sdkword/sdk_video_002.mp4" frameborder=0 allowfullscreen></iframe> | ||
| 108 | 201 | ||
| 109 | -3. **active** | 202 | + ```javascript |
| 203 | + // 跳转客服充值,开发者可根据示例修改,sendMessagePath请严格按照示例中提供的参数 | ||
| 204 | + /** | ||
| 205 | + * 充值跳转客服 | ||
| 206 | + * @param itemId 购买道具商品id | ||
| 207 | + * @param money 购买商品花费,单位元 | ||
| 208 | + */ | ||
| 209 | + private openServiceWithItem(itemId: number, money: number) { | ||
| 210 | + PCSDK.platform.openCustomerServiceConversation({ | ||
| 211 | + showMessageCard: true, | ||
| 212 | + sendMessageTitle: `充值${money}元`, | ||
| 213 | + sendMessagePath: `channel=${PCSDK.data.ChannelId}&item=${itemId}&uid=${PCSDK.data.UserId}&pf=${PCSDK.data.SystemId}`, | ||
| 214 | + sendMessageImg: 'http://dep.miso-lab.com/idiom/bin/share/pay.png', // 图片icon对应的域名记得加入到request和download白名单中 | ||
| 215 | + success: () => { | ||
| 216 | + // 打开跳转客服成功,记录成功状态,onShow通过判断这个状态去请求接口领取奖励 | ||
| 217 | + // 记录数据状态,onShow的时候读取数据状态判断,只是演示操作,可根据实际情况修改 | ||
| 218 | + AppDataManager.I.set('service.pay.data', { | ||
| 219 | + status: 1, // 可以领奖 | ||
| 220 | + itemId: itemId, // 购买道具商品id | ||
| 221 | + money: money // 购买商品花费,单位元 | ||
| 222 | + }); | ||
| 223 | + }, | ||
| 224 | + fail: (err) => { | ||
| 225 | + console.log("openCustomerServiceConversation fail: ", err); | ||
| 226 | + } | ||
| 227 | + }); | ||
| 228 | + } | ||
| 229 | + | ||
| 230 | + // 在游戏中全局注册的onShow事件监听中检测是 | ||
| 231 | + // 游戏入口:Main.cs | ||
| 232 | + class Main { | ||
| 233 | + constructor() { | ||
| 234 | + this.init(); | ||
| 235 | + } | ||
| 236 | + | ||
| 237 | + private init() { | ||
| 238 | + PCSDK.event.add('app.show', this.onShow, this); // 等同于wx.onShow(this.onShow.bind(this)); | ||
| 239 | + PCSDK.event.add('app.hide', this.onHide, this); // 等同于wx.onHide(this.onHide.bind(this)); | ||
| 240 | + } | ||
| 241 | + | ||
| 242 | + private onShow(opts) { | ||
| 243 | + // 判断是否是来源于客服会话,上面的openCustomerServiceConversation的success设置的数据状态做判断 | ||
| 244 | + let serviceRewardData = AppDataManager.I.get('service.pay.data'); | ||
| 245 | + if (serviceRewardData && serviceRewardData.status === 1) { | ||
| 246 | + AppDataManager.I.set('service.pay.data', null); | ||
| 247 | + // 领取奖励的逻辑,比如每天只能领取一次的记录,防止重复刷奖励 | ||
| 248 | + // 请求后端接口验证奖励合理性 | ||
| 249 | + } | ||
| 250 | + } | ||
| 251 | + | ||
| 252 | + private onHide(){ | ||
| 253 | + // 监听平台的onHide事件 | ||
| 254 | + } | ||
| 255 | + } | ||
| 256 | + ``` | ||
| 257 | +<div id="checkUpdate"></div> | ||
| 258 | +3. **checkUpdate** | ||
| 110 | 259 | ||
| 111 | ```javascript | 260 | ```javascript |
| 112 | - PCSDK.stat.active(): void | 261 | + PCSDK.platform.checkUpdate( params?: _ShowModalObject ): void |
| 113 | ``` | 262 | ``` |
| 114 | 263 | ||
| 115 | - 定义:用户活跃/新增注册上报,切记在使用setLogind设置用户信息过后调用此接口,不然会导致新增注册数据统计异常 | 264 | + 定义:检测版本是否有更新,如果版本有更新会弹出确认框,参数可不传递,不传递有版本更新会弹出下图的默认确认框;开发者可自定义弹出框的显示样式,参数与[wx.showModal](https://developers.weixin.qq.com/minigame/dev/api/ui/interaction/wx.showModal.html)一模一样。 |
| 265 | + 建议此api在游戏的入口调用。 | ||
| 266 | +  | ||
| 116 | 267 | ||
| 117 | 参数: | 268 | 参数: |
| 118 | 269 | ||
| 119 | ```javascript | 270 | ```javascript |
| 120 | - 无 | 271 | + params _ShowModalObject 选传 不传递有版本更新会弹出上图样式默认确认框;开发者可自定义弹出框的显示样式,参数参照wx.showModal的参数 |
| 272 | + { | ||
| 273 | + title string 选传 提示的标题,默认为:更新提示 | ||
| 274 | + content string 选传 提示的内容,默认为:新版本已经准备好,是否重启应用? | ||
| 275 | + showCancel boolean 选传 是否显示取消按钮,默认为:false不显示 | ||
| 276 | + cancelText string 选传 取消按钮的文字,最多4个字符 | ||
| 277 | + cancelColor string 选传 取消按钮的文字颜色,必须是16进制格式的颜色字符串 | ||
| 278 | + confirmText string 选传 确认按钮的文字,最多4个字符 | ||
| 279 | + confirmColor string 选传 确认按钮的文字颜色,必须是16进制格式的颜色字符串 | ||
| 280 | + success function 选传 接口调用成功的回调函数 | ||
| 281 | + fail function 选传 接口调用失败的回调函数 | ||
| 282 | + complete function 选传 接口调用结束的回调函数(调用成功、失败都会执行) | ||
| 283 | + } | ||
| 121 | ``` | 284 | ``` |
| 122 | 285 | ||
| 123 | - 示例:游戏登录完成后,获取用户信息后进行打点(该示例,只是模拟该接口使用环境) | 286 | + 示例:在游戏入口类中检测是否有版本更新 |
| 124 | 287 | ||
| 125 | ```javascript | 288 | ```javascript |
| 126 | - // 使用场景1:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息后立即调用active | ||
| 127 | - Api.login().then( data => { | ||
| 128 | - let { user_id, user_reg_time } = data; | ||
| 129 | - // 设置用户信息 | ||
| 130 | - PCSDK.stat.setLogind({ | ||
| 131 | - userId: data.user_id, | ||
| 132 | - regTime: data.user_reg_time | ||
| 133 | - }); | ||
| 134 | - // 用户活跃注册打点 | ||
| 135 | - PCSDK.stat.active(); | ||
| 136 | - }); | ||
| 137 | - | ||
| 138 | - // 使用场景2:发起登录请求,得到用户数据信息,调用setLogind设置SDK用户信息。在其他界面调用active | ||
| 139 | - // 资源加载loading界面 | ||
| 140 | - class LoadingScene(){ | ||
| 141 | - constructor(){ | ||
| 142 | - this.login(); | 289 | + class Main { |
| 290 | + constructor() { | ||
| 291 | + this.init(); | ||
| 143 | } | 292 | } |
| 144 | 293 | ||
| 145 | - private login(){ | ||
| 146 | - // 登录 | ||
| 147 | - Api.login().then( data => { | ||
| 148 | - let { user_id, user_reg_time } = data; | ||
| 149 | - // 设置用户信息 | ||
| 150 | - PCSDK.stat.setLogind({ | ||
| 151 | - userId: data.user_id, | ||
| 152 | - regTime: data.user_reg_time | ||
| 153 | - }); | ||
| 154 | - // 进入home主页场景 | ||
| 155 | - SceneManager.I.switchScene(HomeScene); | ||
| 156 | - }); | ||
| 157 | - } | ||
| 158 | - } | ||
| 159 | - | ||
| 160 | - // Home页面 | ||
| 161 | - class HomeScene(){ | ||
| 162 | - constructor(){ | ||
| 163 | - this.btnStarGame.on('click', this.onGame, this); | 294 | + private init() { |
| 295 | + this.checkUpdate(); | ||
| 164 | } | 296 | } |
| 165 | 297 | ||
| 166 | - private onGame(){ | ||
| 167 | - // 用户活跃注册打点 | ||
| 168 | - PCSDK.stat.active(); | ||
| 169 | - // 进入游戏页面 | ||
| 170 | - SceneManager.I.switchScene(GameScene); | 298 | + private checkUpdate() { |
| 299 | + // 调用SDK的checkUpdate,微信版本有更新,会自动弹出更新确认框 | ||
| 300 | + PCSDK.platform.checkUpdate(); | ||
| 301 | + | ||
| 302 | + // 自定义更新弹出框 | ||
| 303 | + /* | ||
| 304 | + PCSDK.platform.checkUpdate({ | ||
| 305 | + showCancel: true, | ||
| 306 | + content: '客官,xxx游戏有更新了!', | ||
| 307 | + cancelText: '放弃' | ||
| 308 | + }); | ||
| 309 | + */ | ||
| 171 | } | 310 | } |
| 172 | } | 311 | } |
| 173 | 312 | ||
| 313 | + ``` | ||
| 314 | +<div id="vibrate"></div> | ||
| 315 | +4.0 **vibrateShort** | ||
| 316 | + | ||
| 317 | + ```javascript | ||
| 318 | + PCSDK.platform.vibrateShort(): Promise<any> | ||
| 319 | + ``` | ||
| 320 | + | ||
| 321 | + 定义:使手机发生较短时间的振动(15 ms)。仅在 iPhone 7 / 7 Plus 以上及 Android 机型生效 | ||
| 322 | + | ||
| 323 | + 参数: | ||
| 324 | + | ||
| 325 | + ```javascript | ||
| 326 | + 无 | ||
| 327 | + ``` | ||
| 328 | + | ||
| 329 | + 示例: | ||
| 330 | + | ||
| 331 | + ```javascript | ||
| 332 | + PCSDK.platform.vibrateShort(); | ||
| 333 | + | ||
| 334 | + ``` | ||
| 335 | +4.1 **vibrateLong** | ||
| 336 | + | ||
| 337 | + ```javascript | ||
| 338 | + PCSDK.platform.vibrateShort(): Promise<any> | ||
| 339 | + ``` | ||
| 340 | + | ||
| 341 | + 定义:使手机发生较长时间的振动(400 ms) | ||
| 342 | + | ||
| 343 | + 参数: | ||
| 344 | + | ||
| 345 | + ```javascript | ||
| 346 | + 无 | ||
| 347 | + ``` | ||
| 348 | + | ||
| 349 | + 示例: | ||
| 350 | + | ||
| 351 | + ```javascript | ||
| 352 | + PCSDK.platform.vibrateLong(); | ||
| 353 | + | ||
| 174 | ``` | 354 | ``` |
| 175 | \ No newline at end of file | 355 | \ No newline at end of file |
word/噗嗤SDK(PCSDK).xmind
No preview for this file type