Skip to content

Commit 78bb7e1

Browse files
author
shengyonggen
committed
Release 1.14.24
1 parent 8ba6b57 commit 78bb7e1

15 files changed

+385
-188
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
## 1.14.24(2021-10-11)
2+
1. 修复
3+
- 修复 `sendPageLeave` 方法可能导致的报错问题
4+
- 修复 `Fortify` 扫描的安全漏洞问题
5+
16
## 1.14.23(2021-09-28)
27
1. 修复
38
- 修复 `setWebviewUrl` 方法可能会导致客户 `url` 中参数丢失的问题

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242

4343
## License
4444

45-
Copyright 2015-2020 Sensors Data Inc.
45+
Copyright 2015-2021 Sensors Data Inc.
4646

4747
Licensed under the Apache License, Version 2.0 (the "License");
4848
you may not use this file except in compliance with the License.

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.23",
3+
"version": "1.14.24",
44
"description": "sensorsdata miniprogram sdk",
55
"main": "sensorsdata.min.js",
66
"scripts": {

product/sensorsdata.custom.es6.full.js

Lines changed: 62 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
1+
function isObject(obj) {
2+
if (obj === undefined || obj === null) {
3+
return false;
4+
} else {
5+
return toString.call(obj) == '[object Object]';
6+
}
7+
}
8+
9+
var getRandomBasic = (function() {
10+
var today = new Date();
11+
var seed = today.getTime();
12+
13+
function rnd() {
14+
seed = (seed * 9301 + 49297) % 233280;
15+
return seed / 233280.0;
16+
}
17+
return function rand(number) {
18+
return Math.ceil(rnd() * number);
19+
};
20+
})();
21+
22+
function getRandom() {
23+
if (typeof Uint32Array === 'function') {
24+
var cry = '';
25+
if (typeof crypto !== 'undefined') {
26+
cry = crypto;
27+
} else if (typeof msCrypto !== 'undefined') {
28+
cry = msCrypto;
29+
}
30+
if (isObject(cry) && cry.getRandomValues) {
31+
var typedArray = new Uint32Array(1);
32+
var randomNumber = cry.getRandomValues(typedArray)[0];
33+
var integerLimit = Math.pow(2, 32);
34+
return randomNumber / integerLimit;
35+
}
36+
}
37+
return getRandomBasic(10000000000000000000) / 10000000000000000000;
38+
}
39+
140
var _ = {};
241

342
var sa = {};
@@ -156,9 +195,9 @@ sa.status = {};
156195
var ArrayProto = Array.prototype,
157196
ObjProto = Object.prototype,
158197
slice = ArrayProto.slice,
159-
toString = ObjProto.toString,
198+
toString$1 = ObjProto.toString,
160199
hasOwnProperty = ObjProto.hasOwnProperty,
161-
LIB_VERSION = '1.14.23',
200+
LIB_VERSION = '1.14.24',
162201
LIB_NAME = 'MiniProgram';
163202

164203
var source_channel_standard = 'utm_source utm_medium utm_campaign utm_content utm_term';
@@ -249,7 +288,7 @@ var page_route_map = [];
249288
_.isArray =
250289
nativeIsArray ||
251290
function(obj) {
252-
return toString.call(obj) === '[object Array]';
291+
return toString$1.call(obj) === '[object Array]';
253292
};
254293

255294
_.isFunction = function(f) {
@@ -316,7 +355,7 @@ _.isObject = function(obj) {
316355
if (obj === undefined || obj === null) {
317356
return false;
318357
} else {
319-
return toString.call(obj) == '[object Object]';
358+
return toString$1.call(obj) == '[object Object]';
320359
}
321360
};
322361

@@ -337,19 +376,19 @@ _.isUndefined = function(obj) {
337376
};
338377

339378
_.isString = function(obj) {
340-
return toString.call(obj) == '[object String]';
379+
return toString$1.call(obj) == '[object String]';
341380
};
342381

343382
_.isDate = function(obj) {
344-
return toString.call(obj) == '[object Date]';
383+
return toString$1.call(obj) == '[object Date]';
345384
};
346385

347386
_.isBoolean = function(obj) {
348-
return toString.call(obj) == '[object Boolean]';
387+
return toString$1.call(obj) == '[object Boolean]';
349388
};
350389

351390
_.isNumber = function(obj) {
352-
return toString.call(obj) == '[object Number]' && /[\d\.]+/.test(String(obj));
391+
return toString$1.call(obj) == '[object Number]' && /[\d\.]+/.test(String(obj));
353392
};
354393

355394
_.isJSONString = function(str) {
@@ -1085,11 +1124,12 @@ _.setSfSource = function(para, prop) {
10851124

10861125
_.setPageSfSource = function(prop) {
10871126
try {
1088-
var allpages = getCurrentPages();
1089-
var myvar = JSON.parse(JSON.stringify(allpages[allpages.length - 1].options));
1127+
var allpages = _.getCurrentPage();
1128+
var options = allpages ? allpages.options : '';
1129+
var myvar = JSON.parse(JSON.stringify(options));
10901130
for (var i in myvar) {
10911131
myvar[i] = _.decodeURIComponent(myvar[i]);
1092-
}
1132+
};
10931133

10941134
if (!_.isEmptyObject(myvar) && myvar._sfs) {
10951135
prop.$sf_source = myvar._sfs;
@@ -1104,8 +1144,7 @@ try {
11041144
Object.defineProperty(wx, 'setNavigationBarTitle', {
11051145
get: function() {
11061146
return function(titleObj) {
1107-
var pages = getCurrentPages();
1108-
var currentPagePath = pages[pages.length - 1].route || '';
1147+
var currentPagePath = _.getCurrentPath();
11091148
titleObj = _.isObject(titleObj) ? titleObj : {};
11101149
globalTitle[currentPagePath] = titleObj.title;
11111150
oldSetNavigationBarTitle.call(this, titleObj);
@@ -1442,7 +1481,7 @@ sa.prepareData = function(p, callback) {
14421481
}
14431482

14441483
if (!p.type || p.type.slice(0, 7) !== 'profile') {
1445-
data._track_id = Number(String(Math.random()).slice(2, 5) + String(Math.random()).slice(2, 4) + String(Date.now()).slice(-4));
1484+
data._track_id = Number(String(getRandom()).slice(2, 5) + String(getRandom()).slice(2, 4) + String(Date.now()).slice(-4));
14461485
data.properties = _.extend({}, _.info.properties, sa.store.getProps(), _.info.currentProps, data.properties);
14471486
if (p.type === 'track') {
14481487
data.properties.$is_first_day = _.getIsFirstDay();
@@ -1482,11 +1521,11 @@ sa.store = {
14821521
'' +
14831522
Date.now() +
14841523
'-' +
1485-
Math.floor(1e7 * Math.random()) +
1524+
Math.floor(1e7 * getRandom()) +
14861525
'-' +
1487-
Math.random().toString(16).replace('.', '') +
1526+
getRandom().toString(16).replace('.', '') +
14881527
'-' +
1489-
String(Math.random() * 31242)
1528+
String(getRandom() * 31242)
14901529
.replace('.', '')
14911530
.slice(0, 8)
14921531
);
@@ -2261,9 +2300,8 @@ _.setQuery = function(params, isEncode) {
22612300
_.getUtmFromPage = function() {
22622301
var newObj = {};
22632302
try {
2264-
var allpages = getCurrentPages();
2265-
var myvar = JSON.parse(JSON.stringify(allpages[allpages.length - 1].options));
2266-
2303+
var allpages = _.getCurrentPage();
2304+
var myvar = JSON.parse(JSON.stringify(allpages.options));
22672305
for (var i in myvar) {
22682306
myvar[i] = _.decodeURIComponent(myvar[i]);
22692307
}
@@ -2277,13 +2315,13 @@ _.getUtmFromPage = function() {
22772315

22782316
_.sendPageLeave = function() {
22792317
var currentPage = {};
2318+
var router = '';
22802319
try {
2281-
var pages = getCurrentPages();
2282-
currentPage = pages[pages.length - 1];
2320+
currentPage = _.getCurrentPage();
2321+
router = currentPage ? currentPage.route : '';
22832322
} catch (error) {
22842323
logger.info(error);
22852324
}
2286-
var router = currentPage.route;
22872325
if (page_show_time >= 0 && router !== '') {
22882326
var prop = {};
22892327
var title = _.getPageTitle(router);
@@ -2683,13 +2721,7 @@ sa.pageShow = function(prop) {
26832721
var obj = {};
26842722
var router = _.getCurrentPath();
26852723
var title = _.getPageTitle(router);
2686-
var currentPage = {};
2687-
try {
2688-
var pages = getCurrentPages();
2689-
currentPage = pages[pages.length - 1];
2690-
} catch (error) {
2691-
logger.info(error);
2692-
}
2724+
var currentPage = _.getCurrentPage();
26932725
if (sa.para.preset_properties.url_path === true) {
26942726
sa.registerApp({
26952727
$url_path: router

0 commit comments

Comments
 (0)