WxInit.ts
6.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
import WxApi from './WxApi';
import WxSystem from './WxSystem';
import WxLaunch from './WxLaunch';
import { __LOG__, GAMEDATA } from '../base/SDKConst';
import DataService from '../service/DataService';
import SDKUtils from '../utils/SDKUtils';
import SDKEventCenter from '../base/SDKEventCenter';
import { SDKEventEnum } from '../base/SDKEventEnum';
import { NetworkType, DOT_SHARE_TYPE } from '../base/SDKEnum';
import DateUtils from '../utils/DateUtils';
import LogService from '../service/LogService';
export default class WxInit {
private onlineTime: number;
private constructor() {
this.onlineTime = DateUtils.nowTime;
wx.onShow(this.onShow.bind(this));
wx.onHide(this.onHide.bind(this));
wx.onNetworkStatusChange(this.onNetworkStatusChange.bind(this));
}
init() {
let { platform } = WxSystem.I.SystemData;
let launchData = WxLaunch.I.LaunchData;
console.log("启动信息", launchData);
let { query, scene, referrerInfo } = launchData;
let {
invite_type,
channelId,
channel_id,
td_channelid,
channel,
share_id,
share_key,
user_invite_uid,
weixinadinfo,
account_id,
service_id,
shareMessageToFriendScene,
// 抖音投放相关信息
clue_token,
ad_id,
creative_id,
advertister_id,
request_id
// 抖音投放相关信息 end
} = query;
let fromChannel = channelId || channel_id || channel || td_channelid;
// 设置微信转化跟踪:第一项为来源广告的广告id,替换来源渠道id
if (weixinadinfo) {//!fromChannel &&
let infoArr = weixinadinfo.split('.');
if (infoArr && infoArr.length)
fromChannel = infoArr[0];
}
// 设置抖音投放转化跟踪
if (ad_id) {
fromChannel = ad_id;
}
//定向分享统计
if (shareMessageToFriendScene && shareMessageToFriendScene >= 0 && shareMessageToFriendScene <= 50) {
share_key = GAMEDATA.shareMessageToFriend.sharekey;
share_id = GAMEDATA.shareMessageToFriend.share_id;
}
__LOG__ && console.warn(`====> PCSDK wxinit query user_invite_uid:${user_invite_uid}; fromChannel:${fromChannel}; channelId:${fromChannel}; scene:${scene}; share_id:${share_id}; share_key:${share_key};`);
// 设置sdk 数据的信息
DataService.I
.setScene(scene)
.setReferrerInfo(referrerInfo || {})
.setShareId(share_id)
.setPlatform(platform)
.setShareKey(share_key)
.setChannelId(fromChannel)
.setQueryChannelId(fromChannel || GAMEDATA.channel_id)
.setInviteType(invite_type)
.setQueryUserInviteUid(user_invite_uid || 0)
.setQueryExtData({ account_id, service_id })
.setSystemId()
.setLaunchSource()
.setClueToken(clue_token)
.setCreativeId(creative_id)
.setAdvertisterId(advertister_id)
.setRequestId(request_id)
//clue_token=clue_token123&creative_id=creative_id213&ad_id=ad_id9999&request_id=request_id456&advertister_id=advertister_id9876
// 设置网络类型
WxApi.I.getNetworkType()
.then((ret: _NetworkTypeSuccessObject) => this.setNetworkType(ret))
.catch((err: _NetworkTypeSuccessObject) => this.setNetworkType(err));
// 从会话过来,且没有渠道id,打点
// let shareScenes = [SceneCode.WX_SHARE_FRIEND, SceneCode.WX_SHARE_GROUP, SceneCode.WX_SHARE_TICKET];
// if (!fromChannel && shareScenes.indexOf(scene) >= 0) {
// LogService.I.dot(SDKDotType.Share);
// }
}
private onShow(opts: any) {
console.log("onshow_opts", opts)
let nowTime = DateUtils.nowTime;
let { scene, shareTicket } = opts;
this.onlineTime = nowTime;
// 设置sdk 数据的信息
DataService.I
.setScene(scene)
.setLaunchTime(nowTime)
.setLaunchSource();
if (opts && opts.query) {
let { share_key, share_id, invite_type, user_invite_uid } = opts.query;
// DebugUtils.I.dynamic('====> PCSDK onShow 参数:', JSON.stringify(opts));
// DebugUtils.I.dynamic(`====> PCSDK onShow scene:${scene}; share_id:${share_id}; share_key:${share_key};`);
!SDKUtils.isUndefined(share_id) && DataService.I.setShareId(share_id);
!SDKUtils.isUndefined(share_key) && DataService.I.setShareKey(share_key);
!SDKUtils.isUndefined(invite_type) && DataService.I.setInviteType(invite_type);
!SDKUtils.isUndefined(shareTicket) && DataService.I.setShareTicket(shareTicket);
!SDKUtils.isUndefined(user_invite_uid) && DataService.I.setQueryUserInviteUid(user_invite_uid);
if (share_id && share_key) {
LogService.I.share(share_key, share_id, DOT_SHARE_TYPE.click);
}
}
// 抛出onShow事件
SDKEventCenter.I.emit(SDKEventEnum.APP_SHOW, opts);
}
private onHide() {
// 清除banner定时器
// Platform.I.banner && Platform.I.banner.clear();
SDKEventCenter.I.emit(SDKEventEnum.APP_HIDE);
// 曝光同步
LogService.I.bannerExposure();
// // 资源变更同步
// LogService.I.syncLogRes();
// // 关卡同步
// LogService.I.syncLogLevel();
// 同步logout:在线时长同步
// console.error("this.onlineTime", this.onlineTime)
if (this.onlineTime) {
LogService.I.logOut(DateUtils.nowTime - this.onlineTime);
this.onlineTime = 0;
}
}
private onNetworkStatusChange(res: { isConnected: boolean; networkType: NetworkType }) {
console.warn('网络变化了:', res);
this.setNetworkType(res);
}
private setNetworkType(res: any) {
res && res.networkType && DataService.I.setNetworkType(res.networkType as NetworkType);
}
private static instance: WxInit;
static get I(): WxInit {
return this.instance || (this.instance = new WxInit);
}
}