Skip to content

Commit 101b55a

Browse files
author
shengyonggen
committed
Release 1.14.17
1 parent 6d82980 commit 101b55a

14 files changed

+709
-147
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 1.14.17(2021-08-5)
2+
1. 新增
3+
- 新增公共预置属性 `$referrer_title`
4+
1. 修复
5+
- 修复特定情况下 `$referrer` 取值异常的问题
6+
17
## 1.14.16(2021-07-31)
28
1. 修复
39
- 修复开发者工具企业微信小程序模式获取 `title` 报错问题

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sa-sdk-miniprogram",
3-
"version": "1.14.16",
3+
"version": "1.14.17",
44
"description": "sensorsdata miniprogram sdk",
55
"main": "sensorsdata.min.js",
66
"scripts": {

product/sensorsdata.custom.es6.full.js

Lines changed: 108 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -156,17 +156,13 @@ var ArrayProto = Array.prototype,
156156
slice = ArrayProto.slice,
157157
toString = ObjProto.toString,
158158
hasOwnProperty = ObjProto.hasOwnProperty,
159-
LIB_VERSION = '1.14.16',
159+
LIB_VERSION = '1.14.17',
160160
LIB_NAME = 'MiniProgram';
161161

162162
var source_channel_standard = 'utm_source utm_medium utm_campaign utm_content utm_term';
163163
var latest_source_channel = ['$latest_utm_source', '$latest_utm_medium', '$latest_utm_campaign', '$latest_utm_content', '$latest_utm_term', '$latest_sa_utm'];
164164
var latest_share_info = ['$latest_share_distinct_id', '$latest_share_url_path', '$latest_share_depth', '$latest_share_method'];
165165

166-
var sa_referrer = '直接打开';
167-
168-
sa.status.referrer = '直接打开';
169-
170166
var mpshow_time = null;
171167

172168
var query_share_depth = 0;
@@ -179,6 +175,7 @@ var wxSDKVersion = '';
179175
sa.lib_version = LIB_VERSION;
180176

181177
var globalTitle = {};
178+
var page_route_map = [];
182179

183180
(function() {
184181
var nativeBind = FuncProto.bind,
@@ -686,11 +683,22 @@ _.rot13defs = function(str) {
686683
return _.rot13obfs(str, n - key);
687684
};
688685

686+
_.getCurrentPage = function() {
687+
var obj = {}
688+
try {
689+
var pages = getCurrentPages();
690+
obj = pages[pages.length - 1]
691+
} catch (error) {
692+
logger.info(error);
693+
}
694+
695+
return obj
696+
};
697+
689698
_.getCurrentPath = function() {
690699
var url = '未取到';
691700
try {
692-
var pages = getCurrentPages();
693-
var currentPage = pages[pages.length - 1];
701+
var currentPage = _.getCurrentPage()
694702
url = currentPage.route;
695703
} catch (e) {
696704
logger.info(e);
@@ -1025,8 +1033,80 @@ try {
10251033
})
10261034
} catch (err) {
10271035
logger.info(err);
1036+
};
1037+
1038+
_.setRefPage = function() {
1039+
var _refInfo = {
1040+
route: '',
1041+
title: ''
1042+
};
1043+
1044+
try {
1045+
1046+
var pages = getCurrentPages();
1047+
if (pages && pages.length === 1) {
1048+
1049+
var current_path = pages[pages.length - 1].route;
1050+
var current_title = _.getPageTitle(current_path);
1051+
var currentPageInfo = {
1052+
title: current_title,
1053+
route: current_path
1054+
};
1055+
1056+
if (page_route_map.length >= 2) {
1057+
if (page_route_map[page_route_map.length - 1].route !== currentPageInfo.route) {
1058+
page_route_map.push(currentPageInfo);
1059+
page_route_map.shift();
1060+
};
1061+
} else {
1062+
page_route_map.push(currentPageInfo);
1063+
}
1064+
}
1065+
1066+
} catch (error) {
1067+
logger.info(error);
1068+
}
10281069
}
10291070

1071+
_.getRefPage = function() {
1072+
var _refInfo = {
1073+
route: '直接打开',
1074+
title: ''
1075+
};
1076+
1077+
try {
1078+
var pages = getCurrentPages();
1079+
if (pages && pages.length >= 2) {
1080+
_refInfo.route = pages[pages.length - 2].route;
1081+
_refInfo.title = _.getPageTitle(_refInfo.route);
1082+
} else if (pages && pages.length >= 1) {
1083+
if (page_route_map.length >= 2) {
1084+
var refPages = page_route_map;
1085+
_refInfo.route = refPages[refPages.length - 2].route;
1086+
_refInfo.title = _.getPageTitle(_refInfo.route);
1087+
};
1088+
1089+
if (_refInfo.route === pages[pages.length - 1].route) {
1090+
_refInfo = {
1091+
title: '',
1092+
route: '直接打开'
1093+
};
1094+
};
1095+
}
1096+
} catch (error) {
1097+
logger.info(error);
1098+
}
1099+
return _refInfo;
1100+
};
1101+
1102+
_.setPageRefData = function(prop) {
1103+
var refPage = _.getRefPage();
1104+
if (_.isObject(prop)) {
1105+
prop.$referrer = refPage.route;
1106+
prop.$referrer_title = refPage.title;
1107+
};
1108+
};
1109+
10301110
_.getPageTitle = function(route) {
10311111
if (route === '未取到' || !route) {
10321112
return false;
@@ -1172,6 +1252,7 @@ _.info = {
11721252
}
11731253
}
11741254

1255+
11751256
function getSystemInfo() {
11761257
wx.getSystemInfo({
11771258
"success": function(t) {
@@ -1296,13 +1377,22 @@ sa.prepareData = function(p, callback) {
12961377

12971378
data.properties.$is_first_day = _.getIsFirstDay();
12981379

1299-
}
1380+
var refPage = _.getRefPage();
1381+
if (!data.properties.hasOwnProperty('$referrer')) {
1382+
data.properties.$referrer = refPage.route;
1383+
};
1384+
1385+
if (!data.properties.hasOwnProperty('$referrer_title')) {
1386+
data.properties.$referrer_title = refPage.title;
1387+
};
1388+
1389+
};
13001390
if (data.properties.$time && _.isDate(data.properties.$time)) {
13011391
data.time = data.properties.$time * 1;
13021392
delete data.properties.$time;
13031393
} else {
13041394
data.time = (new Date()) * 1;
1305-
}
1395+
};
13061396

13071397
_.parseSuperProperties(data.properties);
13081398

@@ -2155,12 +2245,11 @@ sa.autoTrackCustom = {
21552245
});
21562246

21572247
prop.$url_query = _.setQuery(para.query);
2158-
2248+
_.setPageRefData(prop);
21592249
if (not_use_auto_track) {
21602250
prop = _.extend(prop, not_use_auto_track);
21612251
sa.track('$MPLaunch', prop);
21622252
} else if (sa.para.autoTrack && sa.para.autoTrack.appLaunch) {
2163-
21642253
sa.autoTrackCustom.trackCustom('appLaunch', prop, '$MPLaunch');
21652254
}
21662255
},
@@ -2197,6 +2286,7 @@ sa.autoTrackCustom = {
21972286

21982287
_.setLatestChannel(utms.pre2);
21992288
_.setSfSource(para, prop);
2289+
_.setPageRefData(prop);
22002290
sa.registerApp({
22012291
$latest_scene: prop.$scene
22022292
});
@@ -2214,7 +2304,8 @@ sa.autoTrackCustom = {
22142304
prop.$url_path = _.getCurrentPath();
22152305
if (mpshow_time && (current_time - mpshow_time > 0) && ((current_time - mpshow_time) / 3600000 < 24)) {
22162306
prop.event_duration = (current_time - mpshow_time) / 1000;
2217-
}
2307+
};
2308+
_.setPageRefData(prop);
22182309
if (not_use_auto_track) {
22192310
prop = _.extend(prop, not_use_auto_track);
22202311
sa.track('$MPHide', prop);
@@ -2288,7 +2379,7 @@ sa.appLaunch = function(option, prop) {
22882379
});
22892380

22902381
obj.$url_query = _.setQuery(option.query);
2291-
2382+
_.setPageRefData(prop);
22922383
if (_.isObject(prop)) {
22932384
obj = _.extend(obj, prop);
22942385
}
@@ -2326,6 +2417,7 @@ sa.appShow = function(option, prop) {
23262417
$latest_scene: obj.$scene
23272418
});
23282419
obj.$url_query = _.setQuery(option.query);
2420+
_.setPageRefData(obj);
23292421
if (_.isObject(prop)) {
23302422
obj = _.extend(obj, prop);
23312423
}
@@ -2338,7 +2430,8 @@ sa.appHide = function(prop) {
23382430
obj.$url_path = _.getCurrentPath();
23392431
if (mpshow_time && (current_time - mpshow_time > 0) && ((current_time - mpshow_time) / 3600000 < 24)) {
23402432
obj.event_duration = (current_time - mpshow_time) / 1000;
2341-
}
2433+
};
2434+
_.setPageRefData(obj);
23422435
if (_.isObject(prop)) {
23432436
obj = _.extend(obj, prop);
23442437
}
@@ -2366,18 +2459,15 @@ sa.pageShow = function(prop) {
23662459
if (title) {
23672460
obj.$title = title;
23682461
};
2369-
obj.$referrer = sa_referrer;
23702462
obj.$url_path = router;
2371-
sa.status.last_referrer = sa_referrer;
23722463
obj.$url_query = currentPage.sensors_mp_url_query ? currentPage.sensors_mp_url_query : '';
23732464
obj = _.extend(obj, _.getUtmFromPage());
23742465
_.setPageSfSource(obj);
2466+
_.setPageRefData(obj);
23752467
if (_.isObject(prop)) {
23762468
obj = _.extend(obj, prop);
23772469
}
23782470
sa.track('$MPViewScreen', obj);
2379-
sa_referrer = router;
2380-
sa.status.referrer = router;
23812471
}
23822472

23832473

0 commit comments

Comments
 (0)