# 安装步骤 ------ ## SDK下载 1. 下载最新版本的SDK [SDK下载](download.md) 。 2. 解压下载的sdk-out-v{版本号}.zip包,解压文件夹里面的的目录结构: ``` ├── sdk.d.ts ├── sdk/ | ├── config.js | └── index.js | └── libs/ | └── game.min.js ``` ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_001.png) - **sdk.d.ts:sdk的ts声明文件,开发者项目采用Typescript开发,请复制该文件到项目中。** - sdk/config.js:sdk配置文件,【[详细请阅读下方config.js参数说明](install.md#config)】 - sdk/index.js:sdk入口文件,引入了sdk所提供的模块功能 - sdk/libs/game.min.js:sdk类库核心代码文件 ## 配置合法域名 * ##### 管理员或开发者身份在微信小程序后台→设置→开发者设置中添加 request、download合法域名 测试环境 request 合法域名: https://pre-dataapi.d3games.com (统计平台测试服域名) 正式环境 request 合法域名: https://dataapi.d3games.com (统计平台正式服域名) cdn资源请求合法域名: https://dep.miso-lab.com (>>>request、download均要添加<<<) ​ ## SDK配置步骤 * #### 将下载下来的sdk压缩包,解压后,拷贝sdk文件夹到微信开发者工具项目中。 示例:将sdk放入到小游戏开发者工具项目的src文件夹中 ![引入目录](https://dep.miso-lab.com/sdkword/sdk_002.png) * #### 在game.js中将sdk.js文件使用require导入。 示例:将sdk放入到小游戏开发者工具项目的src文件夹中 ![引入目录](https://dep.miso-lab.com/sdkword/sdk_003.png) * #### 根据运营提供的信息修改sdk文件夹下的**config**.js文件(可横向拖动查看查看更多====>)
```javaScript export default { IsDebug: false, // 是否debug模式,debug模式会打印log,可使用stat模块setDebug api进行修改 Env: 100, // 100表示正式环境,110表示测试环境,推荐测试联调阶段使用110,提审前切记改成100!!! AdCacheDuration: 30, // 广告列表缓存持续时间间隔 IsUseShareModule: true, // 是否使用分享模块 IsOnlineAutoUse: true, // 是否开启sdk自动请求online模块(在线参数配置)的updateOnlineConfig,拉取在线参数配置 IsOnlineDebug: true, // 是否开启online模块(配置参数模块)debug模式 ShareRightKey: 'forward', // 右上角分享的shareKey,shareKey请阅读share模块说明,默认为forward,为空字符串则不使用右上角分享 ShareData: { // 必填,默认分享数据(拉取不到分享配置后使用,默认分享,SDK自动分配share_id为99999) share_desc: 'xxx', share_wxad_id: '', // 可选,视频广告uid,配置此参数,拉取不到对应的shareKey,推送看视频,不配置或者配置的uid无效则推送分享 share_icon: 'xxx' }, GameId: 0, // 必填,游戏ID,运营提供; ChannelId: 0, // 必填,游戏渠道ID,运营提供; Secret: '***请配置你的Secret***', // 必填,游戏的secret key MidasPay: { // 米大师虚拟支付配置 OfferId: "0", // 在米大师申请的应用id ZoneId: "1", // 分区ID,默认:1 Mode: "game", // 支付的类型,不同的支付类型有各自额外要传的附加参数,默认:game CurrencyType: "CNY", // 币种,默认:CNY Platform: '' // 申请接入时的平台,platform与应用id有关。默认:android(ios暂时没有开放,这里需要配置Platform,开放后,删掉此配置,sdk已经判断平台) } }; ``` 参数详解:
1. **Env ( number ):**SDK执行环境,建议开发者测试联调阶段设为110。 > 提审阶段一定要设为100 > 测试环境各种配置管理、数据分析查看,请[前往测试服后台](http://pre-data.d3games.com/#/login) > 正式环境各种配置管理、数据分析查看,请[前往正式服后台](https://data.d3games.com/#/login) 100:正式环境,请求api域名地址为:https://dataapi.d3games.com 110:测试环境,请求api域名地址为:https://pre-dataapi.d3games.com 2. **IsDebug ( boolean ):**是否debug模式,debug模式会打印sdk中的console.log/error/warn log。 false:关闭log打印,提审前建议设置为false,不打印log信息 true:开启log打印,如遇到联调问题,可设置为true,发体验版本或者查看log发给相关人员进行查看解决问题 也可在代码中动态设置:PCSDK.stat.setDebug( boolean ) 3. **AdCacheDuration(number):**表示获取广告位列表的缓存时间,例如:配置30,SDK中拉取交叉推广位列表后缓存30秒。此参数对接入交叉推广位模块后有效,没有接入可不修改,使用默认值。 4. **IsUseShareModule( boolean ):**是否启用sdk分享/视频功能(sdk把分享和视频封装为share模块,登录后台->【游戏数据】->【配置相关】->【分享/视频配置】后可对分享视频进行动态配置) false:SDK启动时不拉取分享/视频列表,不接入分享/视频模块功能 true:SDK启动时拉取后台配置的分享/视频列表,运营或者开发者登录后台后,配置分享/视频,开发者请详看分享视频模块接入。 5. **IsOnlineAutoUse( boolean ):**是否启用在线配置参数模块功能 false:两种处理 1)不启用在线配置参数模块功能; 2)启用在线配置参数功能,但是SDK启动时不自动调用updateOnlineConfig拉取后台配置参数列表,开发者在代码主动调用拉取在线配置参数:PCSDK.online.updateOnlineConfig(); 示例:开发者代码中主动拉取在线配置参数。 ```javascript // 后台 ->【游戏数据】->【配置参数】栏配置了:是否显示微信插屏广告、交叉推广位是否展示动态开关 PCSDK.online.updateOnlineConfig().then(() => { // 获取是否后台动态配置开启插屏广告,1为开启,0为关闭 let isInterstitialAd = PCSDK.online.getParamsInt('interstitial_ad_open', 0) === 1; // isInterstitialAd && '显示插屏广告'; // 获取动态多个广告位开启的配置 let pcGameOpenMap = PCSDK.online.getParamsObj('pc_games_open', { "Drawer": 0, "GuessLike": 0, "Cross": 0 }); // pcGameOpenMap.Drawer === 1 && '显示抽屉推广位'; // pcGameOpenMap.GuessLike === 1 && '显示猜你喜欢推广位'; // pcGameOpenMap.Cross === 1 && '显示交叉推广位'; }); ``` true:sdk启动时自动调用updateOnlineConfig拉取后台在线配置参数列表,开发者可通过 PCSDK.online.getParamsObj、PCSDK.online.getParamsInt、PCSDK.online.getParamsString、PCSDK.online.getParams api传递后台配置参数key获取在线配置参数。 示例:IsOnlineAutoUse: true,开发者可使用下面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 }); ``` 6. **IsOnlineDebug( boolean ):**是否启用online模块(在线配置参数)debug模式,建议设置为true。 false:不启动debug模式,开发者主动调用updateOnlineConfig或者SDK启动时调用updateOnlineConfig都会把在线配置参数列表设置10分钟缓存,不用每次都去服务器请求,参照了友盟在线参数功能的设计 true: 开启debug模式,只要是请求updateOnlineConfig api都会立即发起请求,而不是去检测读取缓存 7. **ShareRightKey( string ):**右上角分享的shareKey,shareKey请阅读分享视频模块,默认为forward,为空字符串则不使用右上角分享,此配置在配置【IsUseShareModule: true】情况下生效。 示例: 在后台的【分享/视频配置】栏目配置了一条分享key为:forward的分享配置 ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_004.png) 8. **ShareData( object ):**此配置在【IsUseShareModule: true】起效,开发者如果接入了分享视频模块,>>> 请务必配置一条 <<<。 > IsUseShareModule设置true sdk启动拉取分享视频配置列表,如果分享视频列表拉取请求失败,或此shareKey不在分享视频配置列表中(登录后台 ->【游戏数据】->【分享/视频配置】栏没有配置分享key)就会使用此条设置的数据。 示例:可从后台【游戏数据】->【分享/视频配置】中选取一条:复制文案,点击分享素材icon -> 查看大图 -> 右键查看分享图片的html源码复制src图片地址: ```json { // 分享文案内容 share_desc: ' 半夜传来啪啪啪!竟是隔壁老王偷偷打气球', // 可选,视频广告uid,配置此参数,拉取不到对应的shareKey,推送看视频,不配置或者配置的uid无效则推送分享 share_wxad_id: 'adunit-6958dcfc3f0bed31', // 分享图 share_icon: 'https://dep.miso-lab.com/data_analysis/games/res/5D57D4A3Yx.png' } ``` 操作步骤: ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_005.png) 9. **GameId:必填,游戏id,请联系运营人员提供** 10. **ChannelId:必填,游戏渠道id,请联系运营人员提供** 11. **Secret:必填,游戏 Secret Key,请联系运营人员提供** 12. **MidasPay( object ):**米大水虚拟支付配置,没有接入微信的米大师支付,请注意下面规则 OfferId:在米大师申请的应用id,没有接入米大师,默认为"0" ZoneId:分区ID,默认:"1" Mode:支付的类型,不同的支付类型有各自额外要传的附加参数,默认:"game" CurrencyType:币种,默认:"CNY" Platform:申请接入时的平台,platform与应用id有关。 1)接入了米大师,填写"android"(ios暂时没有开放) 2)未接入米大师,使用其他支付,如果只支持android,则填写"android"; 3)未接入米大师,使用其他支付,如果只支持ios,则填写"ios"; 4)未接入米大师,使用其他支付,如果支持ios和android,则填写为"",sdk会根据手机识别android还是ios * #### 如果项目使用Typescript语言开发,请引入解压文件夹下的sdk.d.ts文件到项目中。 示例:项目采用的是Laya Typescript版本进行开发,将该文件复制到libs目录下面 ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_007.png) * #### 到此,SDK的准备工作已经配置完毕,运行起来: 运行中碰到问题,[[请查看FAQ](faq.md)],或者微信群联系相关人员。 正常运行,阅读SDK手册,开始[[SDK模块功能](modules.md)]接入。