提交 a466178a 作者: 王进

增加头条SDK心跳上报

上级 d060fa24
......@@ -62,7 +62,7 @@ class TTSDK {
});
if (sdkLoginData.code == 0) {
_selt.sdkParams.open_id = sdkLoginData.data.openid || '';
_selt.ReportParams.openId = _selt.sdkParams.anonymous_openid = sdkLoginData.data.anonymous_openid || ''; // 游客openid
_selt.ReportParams.openId = _selt.sdkParams.anonymous_openid = _selt.heartParams.uuid = sdkLoginData.data.anonymous_openid || ''; // 游客openid
_selt.sdkParams.session_key = sdkLoginData.data.session_key || '';
_selt.sdkParams.uniqueid = sdkLoginData.data.anonymous_openid;
}
......@@ -90,7 +90,7 @@ class TTSDK {
if (sdkLoginData.code == 0) {
// 根据SDK返回用户状态来判断用户是否注册
_selt.sdkParams.token = sdkLoginData.data.token // 记录用户toekn
_selt.ReportParams.userId = sdkLoginData.data.uid // 记录用户ID
_selt.ReportParams.userId = _selt.heartParams.userid = sdkLoginData.data.uid // 记录用户ID
let LoginCallBack = _selt.deepCopy({}, sdkLoginData.data, {
os: _selt.sdkParams.os, // 返回系统类型IOS或者android
session_key: _selt.sdkParams.session_key, // 返回session_key
......@@ -98,7 +98,7 @@ class TTSDK {
});
// _selt.createGameRecorder();
return LoginCallBack;
} else if(sdkLoginData.code == 182) { // 帐号下已经绑定其他角色
} else if (sdkLoginData.code == 182) { // 帐号下已经绑定其他角色
_selt.isBind = 1;
return sdkLoginData.msg;
}
......@@ -123,7 +123,7 @@ class TTSDK {
public async payOrder(Params, showSDKAlert = true) {
const _selt = this;
console.log("#_selt.isBind", _selt.isBind);
if(_selt.isBind == 1) {
if (_selt.isBind == 1) {
const msg = {
title: '提示',
content: '所绑定账号在本服已存在角色,请重新绑定新账号',
......@@ -134,9 +134,9 @@ class TTSDK {
}
// 支付前先判断用户是否登录
const isLogin = await _selt.checkUserLogin();
if(isLogin == -1) {
if (isLogin == -1) {
const isGuest = await _selt.reLogin();
if(isGuest == 0) return false;
if (isGuest == 0) return false;
}
_selt.LoadingOn();
// 支付前先获取用户订单状态,如果没有未完成订单则继续支付
......@@ -382,7 +382,7 @@ class TTSDK {
}
const a = obj.adid || '';
const b = obj.creativeid || '';
if(a != '' && a!='__AID__' && b != '' && b!='__CID__') {
if (a != '' && a != '__AID__' && b != '' && b != '__CID__') {
obj.from = 'toutiaoxyx001';
}
console.log("$$启动参数--->", obj);
......@@ -395,7 +395,7 @@ class TTSDK {
const _selt = this;
await (tt as any).getNetworkType({
success: (res) => {
_selt.ReportParams.networkType = res.networkType
_selt.ReportParams.networkType = _selt.heartParams.info.network = res.networkType
},
fail: (err) => {
console.log("$$SDK错误->getNetworkType", err)
......@@ -406,15 +406,16 @@ class TTSDK {
const _selt = this;
await (tt as any).getSystemInfo({
success: (res) => {
_selt.ReportParams.model = _selt.sdkParams.equipmentname = res.model
_selt.ReportParams.model = _selt.sdkParams.equipmentname = _selt.heartParams.info.model = res.model
_selt.ReportParams.screenWidth = res.screenWidth
_selt.ReportParams.screenHeight = res.screenHeight
_selt.ReportParams.language = res.language
_selt.heartParams.resolution = res.screenWidth + '*' + res.screenHeight
_selt.ReportParams.language = _selt.heartParams.language = res.language
_selt.ReportParams.system = _selt.sdkParams.equipmentos = res.system
_selt.ReportParams.version = res.version
_selt.ReportParams.SDKVersion = res.SDKVersion
_selt.ReportParams.appName = res.appName
_selt.sdkParams.os = (res.system).split(' ')[0].toLowerCase()
_selt.sdkParams.os = _selt.heartParams.osname = (res.system).split(' ')[0].toLowerCase()
}
})
}
......@@ -423,7 +424,7 @@ class TTSDK {
const loginPromise = await _selt._login(true).catch(err => {
console.log("$$SDK登录异常::Login", err);
});
if(loginPromise == -1) return false; // 用户取消登录
if (loginPromise == -1) return false; // 用户取消登录
let loginPostData = _selt.deepCopy({}, _selt.sdkParams, { // 拼上appid和code
anonymous_code: loginPromise.anonymousCode || '',
appid: tt_SDKConfig.appid,
......@@ -441,7 +442,7 @@ class TTSDK {
}
const res = await _selt.sdkLogin();
console.log("#res", res);
if(res && res != '') {
if (res && res != '') {
_selt.sdkAlert(res);
return 0;
} else {
......@@ -486,9 +487,27 @@ class TTSDK {
console.log(err);
});
}
// 上报心跳
private heartBeat() {
const _selt = this;
const obj = this.heartParams;
const tmp = Date.parse(new Date().toString()).toString() // 获取请求的时间戳秒
obj.time = obj.gentime = tmp.substr(0, 10);
let keys = Object.keys(obj).sort();
let key_url = "";
for (let i = 0; i < keys.length; i++) {
if (keys[i] != 'sign' && keys[i] != 'info' && keys[i] != 'content') key_url += keys[i] + '=' + obj[keys[i]] + '&'
}
obj.sign = md5(key_url + 'BA886FF52827126DCD18E73E0E16420C')
this.request(ttLinks.heartReport, obj, 'POST');
setTimeout(function () {
_selt.heartBeat();
}, 60000);
}
// 上报激活
public ActiReport() {
this.ReportData({ action: 'activation' });
this.heartBeat();
}
// 上报注册
public RegisterReport() {
......@@ -584,7 +603,7 @@ class TTSDK {
return new Promise((resolve, reject) => {
console.log('@@视频本地地址', _self.videoPath);
(tt as any).shareAppMessage({
channel: 'video',
channel: 'video',
query: 'fromOpenId=' + _self.ReportParams.openId + '&from=sharetoutiao&tag=0&' + (videoInfo.query ? videoInfo.query : ''),
title: videoInfo.title,
extra: {
......@@ -777,6 +796,46 @@ class TTSDK {
}
return this.share(ShareParams);
}
private heartParams = {
action: "heartbeat",
appid: tt_SDKConfig.productCode,
time: null, // 【发送请求时间】 unix时间戳,要求是10位数字
gentime: null, // 【数据生成时间】 unix时间戳,要求是10位数字
advid: "", // 广告活动ID
osname: "", // 操作系统名字
userid: "", // 玩家ID
osversion: "", // 操作系统版本号
sdkversion: this.sdkVersion, // sdk 版本号
appname: tt_SDKConfig.appName, // 当前应用的app名字
packagename: "", // 当前应用的包名
appversion: tt_SDKConfig.appVersion, // 当前应用的版本号
resolution: "", // 屏幕分辨率
language: "", // 语言CODE
country: "", // 国家
timezone: "", // 时区
uuid: "", // openid
testid: "", // 测试序列号
sign: "",
info: {
idfa: "",
imei: "",
imsi: "",
mac: "",
model: "", // 手机型号
buildid: "",
manufacturer: "",
memory_free: "",
memory_total: "",
network: "", // 网络状态
battery: "", // 电量
androidid: "",
advertisingid: "",
deeplink: "",
wifiname: ""
},
source: "toutiaoxyx",
content: ""
}
// 统计上报参数
private ReportParams = {
action: null, // 必填,事件类型
......@@ -840,6 +899,7 @@ const ttLinks = {
sendCode: tt_SDKConfig.sdk_domain + '/sms/send.php', // 发送验证码
saveNum: tt_SDKConfig.sdk_domain + '/bind/mobile.php', // 保存手机号码
bindPhone: tt_SDKConfig.sdk_domain + '/bind/is_bind_mobile.php', // 用户手机绑定状态
heartReport: 'https://s.pthzwl.net/sdkapi.php', // 心跳上报接口
}
class ttshareInfo {
title?: string
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论