diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9be865 --- /dev/null +++ b/.gitignore @@ -0,0 +1,64 @@ +# Node rules: +## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +## Dependency directory +## Commenting this out is preferred by some people, see +## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git +node_modules +node_modules/ +node_modules/**/* + +# Book build output +_book + +# eBook build output +*.epub +*.mobi +*.pdf +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion + +*.iml + +## Directory-based project format: +.idea/ +# if you remove the above rule, at least ignore the following: + +# User-specific stuff: +# .idea/workspace.xml +# .idea/tasks.xml +# .idea/dictionaries + +# Sensitive or high-churn files: +# .idea/dataSources.ids +# .idea/dataSources.xml +# .idea/sqlDataSources.xml +# .idea/dynamic.xml +# .idea/uiDesigner.xml + +# Gradle: +# .idea/gradle.xml +# .idea/libraries + +# Mongo Explorer plugin: +# .idea/mongoSettings.xml + +## File-based project format: +*.ipr +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties diff --git a/README.md b/README.md new file mode 100644 index 0000000..c6f548d --- /dev/null +++ b/README.md @@ -0,0 +1,59 @@ +# 噗嗤SDK +PCSDK(噗嗤SDK)是一款封装了微信小游戏、QQ小游戏平台常用api接口和用户行为数据上报的一款产品。 +PCSDK上报小游戏用户所触发的各种行为数据到噗嗤管理后台,后台对数据进行统计分析后多样化的展示数据统计。 + +**PCSDK提供的模块功能:** + +- 统计模块 +- 数据模块 +- 分享视频模块 +- 在线参数模块 +- 跨平台功能模块 + + + +# 噗嗤管理后台 +噗嗤管理后台统计sdk上报的各项数据进行分析;管理sdk所需要的配置信息:分享/视频配置、配置参数(在线参数配置)、噗嗤游戏导出广告配置、用户事件行为配置。 + +为了开发联调测试阶段不影响游戏已上线运营相关数据或者配置信息,特意对管理后台做了测试和线上服划分,噗嗤管理后台分为:测试服后台,正式服后台: + +噗嗤管理后台后台地址: + +- 正式服后台,地址:https://data.d3games.com/#/login + +- 测试服后台,地址:http://pre-data.d3games.com/#/login + +**友情提示:** + +- **之后文案中后台指的是噗嗤管理后台,而不是微信小程序/小游戏后台。** +- **后台登录账号获取,需提供手机信息给我方运营,运营创建后台登录账号、密码后反馈;登录后台即可使用后台提供的各项服务** + + + +**噗嗤后台概览:** +## ![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_006.png) + + + +**后台提供数据分析功能:** + +- 注册/活跃用户,在线时长实时数据分享。 +- 分享数据分析 +- 用户事件行为分析 +- 渠道数据统计分析 + + + +**后台提供配置相关功能:** + +- 分享视频配置 +- 动态配置参数 + + + +# 更多: +- 快速接入,请详读 [安装步骤](install.md) + + + +- 遇到问题可以查看 [FAQ](faq.md) \ No newline at end of file diff --git a/SUMMARY.md b/SUMMARY.md new file mode 100644 index 0000000..0ec0ad7 --- /dev/null +++ b/SUMMARY.md @@ -0,0 +1,12 @@ +# Summary +## 基本使用 +* [SDK简介](README.md) +* [SDK下载](download.md) +* [安装步骤](install.md) +* [命令](commands.md) +* [目录结构](structure.md) +* [配置](settings.md) + +## 扩展 +* [插件](plugins.md) +* [主题](themes.md) diff --git a/book.json b/book.json new file mode 100644 index 0000000..1a8dae0 --- /dev/null +++ b/book.json @@ -0,0 +1,46 @@ +{ + "title": "噗嗤游戏使用文档", + "description": "记录 GitBook 的配置和一些插件的使用", + "author": "zhangjikai", + "output.name": "site", + "language": "zh-hans", + "gitbook": "3.2.3", + "root": ".", + "plugins": [ + "-lunr", + "-search", + "-sharing", + "-highlight", + "-livereload", + "-fontsettings", + "search-plus@^0.0.11", + "simple-page-toc@^0.1.1", + "prism@^2.1.0", + "prism-themes@^0.0.2", + + "anchors@^0.7.1", + "include-codeblock@^3.0.2", + "ace@^0.3.2", + "emphasize@^1.1.0", + "katex@^1.1.3", + "splitter@^0.0.8", + "mermaid-gb3@2.1.0", + "tbfed-pagefooter@^0.0.1", + "expandable-chapters-small@^0.1.7", + + "sectionx@^3.1.0", + "local-video@^1.0.1", + "favicon@^0.0.2", + "todo@^0.1.3", + "terminal@^0.3.2", + "alerts@^0.2.0", + + "include-csv@^0.1.0", + "puml@^1.0.1", + "musicxml@^1.0.2", + "klipse@^1.2.0", + "versions-select@^0.1.1", + "graph@^0.1.0", + "chart@^0.2.0" + ] +} diff --git a/install.md b/install.md new file mode 100644 index 0000000..95727ca --- /dev/null +++ b/install.md @@ -0,0 +1,201 @@ +# 安装步骤 + +------ + +## SDK下载 + +下载最新版本的SDK [在线的示例](http://doc.zhangjikai.com/#/) . + +解压下载的SDK.rar包的目录结构: + +``` +├── sdk.d.ts +├── sdk/ +| ├── config.js +| └── sdk.js +| └── libs/ + | ├── gmae.min.js +``` + +![sdk文件目录结构](https://dep.miso-lab.com/sdkword/sdk_001.png) + + + + + +## 配置合法域名 + +* ##### 管理员或开发者身份在微信小程序后台→设置→开发者设置中添加 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文件(可横向拖动查看查看更多==========>) + + ```c# + export default { + Env: 100, // 100表示正式环境,110表示测试环境,测试开发阶段使用110,提审前切记改成100!!! + IsDebug: false, // 是否debug模式,debug模式会打印log,也可以通过stat模块setDebug进行修改 + 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_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。 + + 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启动拉取噗嗤管理后台配置的分享视频列表,运营或者开发者在噗嗤后台配置分享视频的配置后,开发者可以通过PCSDK.share.shareDispatch( sharekey , ...)进行视频分享分发操作,具体操作请详看SDK分享视频模块。 + + 5. **IsOnlineAutoUse( boolean ):**是否启用SDK启动获取噗嗤游戏后台配置的在线配置参数列表 + + false:两种处理 1)不启用噗嗤后台在线配置参数功能; 2)使用在线配置参数功能,但是启动不拉取后台在线配置参数列表,代码中调用api拉取在线参数 + + 示例:代码中控制拉取在线参数,例如噗嗤后台【游戏数据】=>【配置参数】栏配置了:是否显示微信插屏广告、噗嗤游戏广告导出动态开关 + + ```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启动会自动拉取噗嗤后台在线配置参数列表,开发者可通过PCSDK.online.getParamsObj、PCSDK.online.getParamsInt、PCSDK.online.getParamsString、PCSDK.online.getParams api传递后台配置在线参数key获取动态数据配置。 + + 示例:配置自动拉取后,项目中可直接使用 + + ```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模式,代码控制或者sdk自动调用updateOnlineConfig api都会有十分钟的缓存,参照了友盟在线参数功能的设计 + + true: 开启debug模式,只要是请求updateOnlineConfig api都会实时请求获取最新在线参数配置 + + 7. **ShareRightKey( string ):**右上角分享的shareKey,shareKey请阅读share模块说明,默认为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图片地址:**{** + + ​ **share_desc: ' 半夜传来啪啪啪!竟是隔壁老王偷偷打气球',** + + ​ **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 + + -- libgit2 0.21.0