Commit dab8bc25 authored by liuxinjun's avatar liuxinjun

v1.009版本主要是模拟分享以及游戏在线时长统计

parent 032dc565
...@@ -63,6 +63,12 @@ var sdk = { ...@@ -63,6 +63,12 @@ var sdk = {
//视频失败回调 //视频失败回调
videoFail:null, videoFail:null,
isGameStart:false,
gameOnlineKey:"游戏在线",
shareStartTime:-1,
shareInfo:null,
/** /**
* @apiGroup A * @apiGroup A
* @apiName init * @apiName init
...@@ -109,7 +115,7 @@ var sdk = { ...@@ -109,7 +115,7 @@ var sdk = {
this.Post(this.ip2 + this.Config, {}, function (d) { this.Post(this.ip2 + this.Config, {}, function (d) {
if (d && d.c == 1) { if (d && d.c == 1) {
self.ConfigData = d.d; self.ConfigData = d.d;
//2.初始化分享信息 //2.初始化分享信息
self.Post(self.ip2 + self.Share, {}, function (d2) { self.Post(self.ip2 + self.Share, {}, function (d2) {
// console.log("初始化分享信息:",d2) // console.log("初始化分享信息:",d2)
...@@ -168,6 +174,13 @@ var sdk = { ...@@ -168,6 +174,13 @@ var sdk = {
loginData.source_id2 = option.query.source_id2; loginData.source_id2 = option.query.source_id2;
self.setItem("deviceModel",res.model); self.setItem("deviceModel",res.model);
if(sdk_conf.game_online)
{
//开启游戏统计情况下
self.gameStart({},null);
}
wx.getNetworkType({ wx.getNetworkType({
success(res2){ success(res2){
loginData.network_type = res2.networkType; loginData.network_type = res2.networkType;
...@@ -296,23 +309,99 @@ var sdk = { ...@@ -296,23 +309,99 @@ var sdk = {
let self =this; let self =this;
wx.onHide(function(res){ wx.onHide(function(res){
//监听小游戏隐藏到后台事件。锁屏、按 HOME 键退到桌面、显示在聊天顶部等操作会触发此事件。 //监听小游戏隐藏到后台事件。锁屏、按 HOME 键退到桌面、显示在聊天顶部等操作会触发此事件。
console.log("小游戏隐藏到后台"); console.log("sdk 小游戏隐藏到后台");
self.uploadSceneEvent(null,'隐藏小游戏到后台',null); self.uploadSceneEvent(null,'隐藏小游戏到后台',null);
if(self.isGameStart&&sdk_conf.game_online)
{
// var data = JSON.parse(this.getItem("游戏在线"));
// var nowTime = new Date().getTime();
// data.take_time = data.take_time+ ((nowTime/1000)-data.last_time);
// data.last_time = nowTime/1000;
// this.setItem("游戏在线",JOSN.stringify(data));
self.setSceneEnd(self.getGameOnlineKey(),{});
}
if(self.shareStartTime>0)
{
//隐藏发生在分享调起
console.log("sdk 隐藏发生在分享调起");
}
}); });
wx.onShow(function(res){ wx.onShow(function(res){
//监听小游戏回到前台的事件 //监听小游戏回到前台的事件
console.log("监听小游戏回到前台的事件"); console.log("sdk 监听小游戏回到前台的事件");
var nowTime = new Date().getTime();
if(self.isGameStart&&sdk_conf.game_online)
{
var onlineKey = self.getGameOnlineKey();
}); var dataString = self.getItem(onlineKey);
var data = JSON.parse(dataString);
data.last_time = nowTime/1000;
console.log("onShow->"+onlineKey,JSON.stringify(data));
//setInterval(function(res){ self.setItem(onlineKey,JSON.stringify(data));
//微信定时执行 }
// console.log("微信定时10秒执行");
if(self.shareStartTime>0)
{
var shareTime = (nowTime/1000)-self.shareStartTime;
if(shareTime>=sdk_conf.share_time_limit)
{
console.log("sdk 分享成功");
if(self.shareInfo.success)
{
//分享成功 调用api记录分享数据
self.shareInfo.success();
console.log("sdk 分享成功回调");
}
//分享成功记录到服务器
var option = {'uid': sdk.userid, 'share_id': self.shareInfo.sysid };
self.Get(self.ip3 + self.Logcommon, { log_type: "ShareClick", data: JSON.stringify(option) }, function (d) {
console.log("sdk 分享成功记录到服务器");
});
}else
{
console.log("sdk 分享失败");
//分享失败 回调失败
if(self.shareInfo.fail)
{
self.shareInfo.fail();
console.log("sdk 分享失败回调");
}
}
//重置分享数据
self.shareStartTime = -1;
self.shareInfo =null;
console.log("sdk 清空分享数据记录");
}
});
//},10000);
}, },
WeChatLoginNoAuth(callback){ WeChatLoginNoAuth(callback){
...@@ -617,12 +706,16 @@ var sdk = { ...@@ -617,12 +706,16 @@ var sdk = {
shareInfo.fail = obj.fail; shareInfo.fail = obj.fail;
} }
//.分享统计 测试: uid=11&share_id=22
var option = {'uid': sdk.userid, 'share_id': shareInfo.sysid }; var nowTime = new Date().getTime();
// console.log('==1统计信息==', { log_type: "ShareClick", data: option }) self.shareStartTime = nowTime/1000;
self.Get(self.ip3 + self.Logcommon, { log_type: "ShareClick", data: JSON.stringify(option) }, function (d) { self.shareInfo = shareInfo;
// console.log("==1统计信息结果==", d)
}); // var option = {'uid': sdk.userid, 'share_id': shareInfo.sysid };
// self.Get(self.ip3 + self.Logcommon, { log_type: "ShareClick", data: JSON.stringify(option) }, function (d) {
// });
return shareInfo; return shareInfo;
}) })
...@@ -675,12 +768,14 @@ var sdk = { ...@@ -675,12 +768,14 @@ var sdk = {
if (cc.sys.platform === cc.sys.WECHAT_GAME) { if (cc.sys.platform === cc.sys.WECHAT_GAME) {
wx.shareAppMessage(shareInfo); wx.shareAppMessage(shareInfo);
//.分享统计 测试: uid=11&share_id=22 var nowTime = new Date().getTime();
var option = {'uid': sdk.userid, 'share_id': shareInfo.sysid }; self.shareStartTime = nowTime/1000;
// console.log('==2统计信息==', { log_type: "ShareClick", data: option }) self.shareInfo = shareInfo;
self.Get(self.ip3 + self.Logcommon, { log_type: "ShareClick", data: JSON.stringify(option) }, function (d) { // var option = {'uid': sdk.userid, 'share_id': shareInfo.sysid };
// console.log("==2统计信息结果==", d)
}); // self.Get(self.ip3 + self.Logcommon, { log_type: "ShareClick", data: JSON.stringify(option) }, function (d) {
// });
} }
}, },
...@@ -2115,19 +2210,54 @@ var sdk = { ...@@ -2115,19 +2210,54 @@ var sdk = {
*/ */
setSceneStart(sceneName,params){ setSceneStart(sceneName,params){
var nowTime = new Date().getTime(); if(sceneName==this.gameOnlineKey)
var deviceModel = this.getItem('deviceModel'); {
var data = {};
data.uid=this.getUser().uid;
data.scene_name = sceneName;
data.start_time = nowTime/1000;
data.take_time = 0;
data.end_time = nowTime/1000;
data.params = JSON.stringify(params);
data.device_model = device_model;
console.log("场景数据开始",JSON.stringify(data)); var cacheData = this.getItem(sceneName);
cc.sys.localStorage.setItem(sceneName,JSON.stringify(data)); var nowTime = new Date().getTime();
var data = {};
if(cacheData)
{
data = JSON.parse(cacheData);
data.last_time = nowTime/1000;
console.log(this.gameOnlineKey,JSON.stringify(data));
this.setItem(sceneName,JSON.stringify(data));
}else
{
var deviceModel = this.getItem('deviceModel');
data.uid=this.getUser().uid;
data.scene_name = sceneName;
data.start_time = nowTime/1000;
data.last_time = nowTime/1000;
data.take_time = 0;
data.end_time = nowTime/1000;
data.params = JSON.stringify(params);
data.device_model = deviceModel;
console.log(this.gameOnlineKey,JSON.stringify(data));
this.setItem(sceneName,JSON.stringify(data));
}
}else
{
var nowTime = new Date().getTime();
var deviceModel = this.getItem('deviceModel');
var data = {};
data.uid=this.getUser().uid;
data.scene_name = sceneName;
data.start_time = nowTime/1000;
data.last_time = nowTime/1000;
data.take_time = 0;
data.end_time = nowTime/1000;
data.params = JSON.stringify(params);
data.device_model = deviceModel;
console.log("场景数据开始",JSON.stringify(data));
this.setItem(sceneName,JSON.stringify(data));
}
}, },
...@@ -2145,7 +2275,7 @@ var sdk = { ...@@ -2145,7 +2275,7 @@ var sdk = {
*/ */
setSceneEnd(sceneName,params,callbackFunction){ setSceneEnd(sceneName,params,callbackFunction){
var data = cc.sys.localStorage.getItem(sceneName); var data = this.getItem(sceneName);
console.log("场景数据结束",data); console.log("场景数据结束",data);
...@@ -2155,8 +2285,15 @@ var sdk = { ...@@ -2155,8 +2285,15 @@ var sdk = {
{ {
data = JSON.parse(data); data = JSON.parse(data);
data.end_time = nowTime/1000; data.end_time = nowTime/1000;
data.take_time = (nowTime/1000)-data.start_time; data.take_time = data.take_time+((nowTime/1000)-data.last_time);
console.log("场景数据结束",JSON.stringify(data));
if(sceneName==this.gameOnlineKey)
{
data.last_time=nowTime/1000;
this.setItem(sceneName,JSON.stringify(data));
console.log("setSceneEnd->场景数据结束",JSON.stringify(data));
}
this.Post(this.ip3 + this.Logcommon, { log_type: "SceneLog", data: JSON.stringify(data) }, function (d) { this.Post(this.ip3 + this.Logcommon, { log_type: "SceneLog", data: JSON.stringify(data) }, function (d) {
if(callbackFunction) if(callbackFunction)
...@@ -2176,51 +2313,89 @@ var sdk = { ...@@ -2176,51 +2313,89 @@ var sdk = {
* @apiGroup C * @apiGroup C
* @apiName gameStart * @apiName gameStart
* @api {数据存储} 数据存储 gameStart(存) 玩家进入游戏界面开始调用 * @api {数据存储} 数据存储 gameStart(存) 玩家进入游戏界面开始调用
* @apiParam {JSON} extraData 额外数据 * @apiParam {JSON} params 额外数据
* @apiSuccessExample {json} 示例: * @apiSuccessExample {json} 示例:
* sdk.gameStart({},null) * sdk.gameStart({},null)
*/ */
gameStart(extraData,callbackFunction){ gameStart(params,callbackFunction){
var data = {}; if(sdk_conf.game_online)
data.uid=this.getUser().uid; {
data.extra_data = JSON.stringify(extraData); this.setSceneStart(this.getGameOnlineKey(),params);
this.Post(this.ip3 + this.Logcommon, { log_type: "GameStartLog", data: JSON.stringify(data) }, function (d) { this.isGameStart = true;
}else
if(callbackFunction) {
console.error("您没有打开游戏在线时长统计");
}
// var nowTime = new Date().getTime();
// var data = JSON.parse(this.getItem("游戏在线"));
// data.last_time = nowTime/1000;
// this.setItem("游戏在线",JSON.stringify(data));
},
getGameOnlineKey()
{
if(sdk_conf.game_online)
{
if(this.gameOnlineKey=='游戏在线')
{ {
callbackFunction(d); //如果当前是默认游戏在线名称
this.gameOnlineKey = this.gameOnlineKey+this.formatTime(new Date(),"date","");
}else
{
//已经生成了游戏在线key
var nowGameKey = '游戏在线'+this.formatTime(new Date(),"date","");
if(this.gameOnlineKey==nowGameKey)
{
//如果还在当天之内
}else
{
//如果已经过了一天了,做最后一次数据上传
this.setSceneEnd(this.gameOnlineKey,{});
//修改当前在线的key
this.gameOnlineKey = nowGameKey;
//并且开始新的游戏开始
this.setSceneStart(this.gameOnlineKey,{});
}
} }
});
//this.setOnline(0,0,callbackFunction);
return this.gameOnlineKey;
}else
{
console.error("您没有打开游戏在线时长统计");
}
}, },
/** /**
* @apiGroup C * @apiGroup C
* @apiName gameOver * @apiName gameOver
* @api {数据存储} 数据存储 gameOver(存) 玩家结束游戏调用 * @api {数据存储} 数据存储 gameOver(存) 玩家结束游戏调用
* @apiParam {JSON} extraData 额外数据 * @apiParam {JSON} params 额外数据
* @apiSuccessExample {json} 示例: * @apiSuccessExample {json} 示例:
* sdk.gameOver({},null) * sdk.gameOver({},null)
*/ */
gameOver(extraData,callbackFunction){ gameOver(params,callbackFunction){
//this.setOnline(0,1,callbackFunction);
var data = {};
data.uid=this.getUser().uid; if(sdk_conf.game_online)
data.extra_data = JSON.stringify(extraData); {
this.setSceneEnd(this.getGameOnlineKey(),params);
this.Post(this.ip3 + this.Logcommon, { log_type: "GameOverLog", data: JSON.stringify(data) }, function (d) { }else
{
if(callbackFunction) console.error("您没有打开游戏在线时长统计");
{ }
callbackFunction(d);
}
});
}, },
......
...@@ -15,7 +15,7 @@ var sdk_conf = { ...@@ -15,7 +15,7 @@ var sdk_conf = {
//.开发平台:由sdk维护者确定,weixin 或 toutiao,接入游戏的技术不需要修改 //.开发平台:由sdk维护者确定,weixin 或 toutiao,接入游戏的技术不需要修改
dev_platform: 'weixin', dev_platform: 'weixin',
//.乐玩sdk的版本号:由sdk维护者确定,接入游戏的技术不需要修改 //.乐玩sdk的版本号:由sdk维护者确定,接入游戏的技术不需要修改
llewan_sdk_version:'1.008', llewan_sdk_version:'1.009',
//.接口加密key,切勿修改 //.接口加密key,切勿修改
md5_key: '$5dfjr$%dsadsfdsii', md5_key: '$5dfjr$%dsadsfdsii',
...@@ -36,6 +36,8 @@ var sdk_conf = { ...@@ -36,6 +36,8 @@ var sdk_conf = {
}, },
default_upload_row_count:20, default_upload_row_count:20,
default_upload_interval:120, default_upload_interval:120,
//游戏在线统计时长开启与关闭。true为开启,false为关闭
game_online:true,
}; };
module.exports = sdk_conf; module.exports = sdk_conf;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment