# 分享视频模块
------
#### **简介**
小游戏生态中,大家普遍把平台提供的分享/视频接口更多用于某个奖励领取、获取n倍奖励、游戏死亡复活、转盘额外次数获得等等一种有效途径(分享:拉取新用户,视频:赚钱广告费);噗嗤游戏在分享or视频平衡推送切换不断的探索迭代中,总结了一套分享/视频积分策略,集成在SDK中开放给开发者,开发者在后台界面化操作下能方便的对某个功能点分享文案、分享图、推送类型(分享、视频)进行添加修改:
- 分享/视频配置可以让开发者在后台中动态修改相关功能的分享/视频配置内容。
- 新增某个功能的分享点配置、在线修改相关功能的分享图或文案、在线切换某个功能按钮的分享/视频功能。
#### **后台使用**
配置分享视频配置,登录后台->头部tab切换到【游戏数据】->【配置相关】->【分享/视频配置】可新增、编辑修改分享/视频内容:


接入分享视频模块后,后台已经对分享和视频数据分别进行整理统计了,游戏接入方可实时阅览分享/视频的各项数据:
查看分享分析,登录后台->头部tab切换到【游戏数据】->【产品分析】->【分享分析】可阅览游戏分享数据的各项统计:

查看视频广告详情,登录后台->头部tab切换到【游戏数据】->【配置相关】->【视频广告详情】可阅览游戏各个功能点视频数据统计:

#### **接入必读**
- 接入此模块前,请[**前往sdk/config.js文件中配置【IsUseShareModule: true 】开启share模块功能**](install.md#config_env),此参数配置为true,SDK启动时将自动拉取后台 -> 【分享/视频配置】配置的分享/视频配置列表。
- 微信小游戏开发者接入此模块,提审时候为了避免触犯微信平台的[滥用分享行为](https://developers.weixin.qq.com/minigame/product/#_5-1-滥用分享行为),在后台【配置参数】中配置了一个系统级别的配置参数share_unlock,进行分享开关切换:1(开启)0(关闭),提审时候设置为0,审核通过后设置为1,SDK中读取此参数,如果推送的是分享,最终处理为无视频无分享模式。
- 开发者如
#### 接入API:**
| **名称** | **功能说明** |
| ------------------------------- | ------------------------------------------------------------ |
| PCSDK.online.updateOnlineConfig | 拉取后台配置的配置参数数据,可代码中手动调用,也可以通过config.js中配置SDK主动拉取,注意:使用前请详细[阅读config.js的IsOnlineAutoUse和IsOnlineDebug参数详解](install.md#config_env) |
| PCSDK.online.getParamsInt | 根据在线参数key获取number类型参数值,适合配置参数为:整数、浮点数 |
| PCSDK.online.getParamsObj | 根据在线参数key获取object类型参数值,适合配置参数为:数组、json对象 |
| PCSDK.online.getParamsString | 根据在线参数key获取string类型参数值,适合配置参数为:字符串、json字符串 |
1. ##### **updateOnlineConfig**
```javascript
PCSDK.online.updateOnlineConfig(): Promise
```
定义:拉取后台配置的配置参数数据,
提示:
> [config.js中配置IsOnlineAutoUse](install.md#config_env)为true:SDK启动时自动去拉取在线配置参数,开发者不需要调用此接口,不然会导致重复拉取
>
> [config.js中配置IsOnlineAutoUse](install.md#config_env)为false:有两种理解方式:1)不接入使用在线配置参数模块;2)接入使用在线配置参数模块,开发者自己手动调用updateOnlineConfig api处理逻辑。
>
> 下面示例会演示两种不同配置的使用范例:
参数:
```
无
```
返回值:
```
Promise
```
示例1:config.js配置IsOnlineAutoUse为false,开发者调用updateOnlineConfig api手动拉取在线配置参数数据
```javascript
// 后台 ->【游戏数据】->【配置参数】栏配置了:是否显示微信插屏广告、交叉推广位是否展示动态开关
PCSDK.online.updateOnlineConfig().then(() => {
// 使用1:获取是否后台动态配置开启插屏广告,1为开启,0为关闭
let isInterstitialAd = PCSDK.online.getParamsInt('interstitial_ad_open', 0) === 1;
// isInterstitialAd && '显示插屏广告';
// 使用2:获取动态多个广告位开启的配置
let pcGameOpenMap = PCSDK.online.getParamsObj('pc_games_open', { "Drawer": 0, "GuessLike": 0, "Cross": 0 });
// pcGameOpenMap.Drawer === 1 && '显示抽屉推广位';
// pcGameOpenMap.GuessLike === 1 && '显示猜你喜欢推广位';
// pcGameOpenMap.Cross === 1 && '显示交叉推广位';
// 使用3:获取签到配置
let signRewardCfg = PCSDK.online.getParamsObj('sign_reward_cfg', [100, 300, 500, 700, 900, 2000, 3000]);
// 使用4:获取动态bannerUid
let bannerUid = PCSDK.online.getParamsString('banner_common_uid', 'adunit-fe38438f074c717f');
// bannerUid && '显示banner';
});
```
示例2:config.js配置IsOnlineAutoUse为true,SDK启动时会自动调用 updateOnlineConfig 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 });
```
2. ##### **getParamsInt**
```javascript
PCSDK.online.getParamsInt( key: string, defaultVal?: number ): number
```
定义:根据在线参数key获取number类型参数值,适合配置参数为:整数、浮点数
参数:
```javascript
key: string 必传 后台 ->【配置参数】配置的key
defaultVal: number 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值
```
返回值:
```
number
```
示例:[查看上面的示例代码](online.md#sample)
3. **getParamsObj**
```javascript
PCSDK.online.getParamsObj( key: string, defaultVal?: any ): any
```
定义:根据在线参数key获取object类型参数值,适合配置参数为:数组、json对象
参数:
```javascript
key: string 必传 后台 ->【配置参数】配置的key
defaultVal: any 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值
```
返回值:
```
object | array | null
```
示例:[查看上面的示例代码](online.md#sample)
1. **getParamsString**
```javascript
PCSDK.online.getParamsString( key: string, defaultVal?: string ): string
```
定义:根据在线参数key获取string类型参数值,适合配置参数为:字符串、json字符串
参数:
```javascript
key: string 必传 后台 ->【配置参数】配置的key
defaultVal: string 选传 默认值 后台没有配置此key,或在线配置参数数据拉取失败,则返回此值
```
返回值:
```
string
```
示例:[查看上面的示例代码](online.md#sample)