Skip to content

Commit 795402e

Browse files
author
shengyonggen
committed
unicode,id数字,打通只发
1 parent 22d0ceb commit 795402e

File tree

7 files changed

+154
-24
lines changed

7 files changed

+154
-24
lines changed

sensorsdata.amd.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sensorsdata.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/sdk.js

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1517,12 +1517,37 @@ _.jssdkDebug = function(recevie_prop,has_prop){
15171517
}
15181518
}
15191519
};
1520+
_.strToUnicode = function(str){
1521+
if(typeof str !== 'string'){
1522+
logger.info('转换unicode错误',str);
1523+
return str;
1524+
}
1525+
var nstr = '';
1526+
for(var i = 0; i<str.length; i++){
1527+
nstr += '\\'+str.charCodeAt(i).toString(16);
1528+
}
1529+
return nstr;
1530+
};
15201531

15211532
_.querySelectorAll = function(val){
1533+
15221534
if(typeof val !== 'string'){
1523-
logger.info('错误',val);
1535+
logger.info('选择器错误',val);
15241536
return [];
15251537
}
1538+
// 替换纯数字的id
1539+
var sp = val.split(' ');
1540+
if(sp.length === 1){
1541+
if(/^#\d+$/.test(sp[0])){
1542+
val = '#' + _.strToUnicode(sp[0].slice(1));
1543+
}
1544+
}else{
1545+
if(/^#\d+$/.test(sp[0])){
1546+
sp[0] = '#' + _.strToUnicode(sp[0].slice(1));
1547+
val = sp.join(' ');
1548+
}
1549+
}
1550+
15261551
try{
15271552
return document.querySelectorAll(val);
15281553
}catch(e){
@@ -1701,7 +1726,7 @@ sd.sendState.getSendCall = function(data, callback) {
17011726
data = JSON.stringify(data);
17021727
logger.info(originData);
17031728
// 打通app传数据给app
1704-
if(sd.para.use_app_track){
1729+
if(sd.para.use_app_track === true || sd.para.use_app_track === 'only'){
17051730
if((typeof SensorsData_APP_JS_Bridge === 'object') && SensorsData_APP_JS_Bridge.sensorsdata_track){
17061731
SensorsData_APP_JS_Bridge.sensorsdata_track(data);
17071732
(typeof callback === 'function') && callback();
@@ -1713,9 +1738,15 @@ sd.sendState.getSendCall = function(data, callback) {
17131738
iframe = null;
17141739
(typeof callback === 'function') && callback();
17151740
}else{
1716-
this.prepareServerUrl(data,callback);
1741+
if(sd.para.use_app_track === true){
1742+
this.prepareServerUrl(data,callback);
1743+
}
17171744
}
1718-
}else{
1745+
}else if(sd.para.use_app_track === 'mui'){
1746+
if(_.isObject(window.plus) && window.plus.SDAnalytics && window.plus.SDAnalytics.trackH5Event){
1747+
window.plus.SDAnalytics.trackH5Event(data);
1748+
}
1749+
} else{
17191750
this.prepareServerUrl(data,callback);
17201751
}
17211752
};
@@ -1868,6 +1899,18 @@ var saNewUser = {
18681899
checkIsFirstLatest: function() {
18691900
var url_domain = _.info.pageProp.url_domain;
18701901
var referrer_domain = _.info.pageProp.referrer_domain;
1902+
1903+
//去除详叔的坑,utm_source相关
1904+
var latest_utms = ['$utm_source','$utm_medium', '$utm_campaign', '$utm_content', '$utm_term'];
1905+
var props = store.getProps();
1906+
for(var i =0;i<latest_utms.length;i++){
1907+
if(latest_utms[i] in props){
1908+
delete props[latest_utms[i]];
1909+
}
1910+
}
1911+
store.setProps(props,true);
1912+
1913+
18711914
// 判断最近一次,如果前向地址跟自己域名一致,且cookie中取不到值,认为有异常
18721915
// 最近一次站外前向地址,如果域名不一致,就register为latest
18731916
if(url_domain !== referrer_domain){

src/sensorsdata.full.amd.js

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ var ObjProto = Object.prototype;
142142
var slice = ArrayProto.slice;
143143
var toString = ObjProto.toString;
144144
var hasOwnProperty = ObjProto.hasOwnProperty;
145-
var LIB_VERSION = '1.9.2';
145+
var LIB_VERSION = '1.9.4';
146146

147147
sd.lib_version = LIB_VERSION;
148148

@@ -1655,12 +1655,37 @@ _.jssdkDebug = function(recevie_prop,has_prop){
16551655
}
16561656
}
16571657
};
1658+
_.strToUnicode = function(str){
1659+
if(typeof str !== 'string'){
1660+
logger.info('转换unicode错误',str);
1661+
return str;
1662+
}
1663+
var nstr = '';
1664+
for(var i = 0; i<str.length; i++){
1665+
nstr += '\\'+str.charCodeAt(i).toString(16);
1666+
}
1667+
return nstr;
1668+
};
16581669

16591670
_.querySelectorAll = function(val){
1671+
16601672
if(typeof val !== 'string'){
1661-
logger.info('错误',val);
1673+
logger.info('选择器错误',val);
16621674
return [];
16631675
}
1676+
// 替换纯数字的id
1677+
var sp = val.split(' ');
1678+
if(sp.length === 1){
1679+
if(/^#\d+$/.test(sp[0])){
1680+
val = '#' + _.strToUnicode(sp[0].slice(1));
1681+
}
1682+
}else{
1683+
if(/^#\d+$/.test(sp[0])){
1684+
sp[0] = '#' + _.strToUnicode(sp[0].slice(1));
1685+
val = sp.join(' ');
1686+
}
1687+
}
1688+
16641689
try{
16651690
return document.querySelectorAll(val);
16661691
}catch(e){
@@ -1839,7 +1864,7 @@ sd.sendState.getSendCall = function(data, callback) {
18391864
data = JSON.stringify(data);
18401865
logger.info(originData);
18411866
// 打通app传数据给app
1842-
if(sd.para.use_app_track){
1867+
if(sd.para.use_app_track === true || sd.para.use_app_track === 'only'){
18431868
if((typeof SensorsData_APP_JS_Bridge === 'object') && SensorsData_APP_JS_Bridge.sensorsdata_track){
18441869
SensorsData_APP_JS_Bridge.sensorsdata_track(data);
18451870
(typeof callback === 'function') && callback();
@@ -1851,9 +1876,15 @@ sd.sendState.getSendCall = function(data, callback) {
18511876
iframe = null;
18521877
(typeof callback === 'function') && callback();
18531878
}else{
1854-
this.prepareServerUrl(data,callback);
1879+
if(sd.para.use_app_track === true){
1880+
this.prepareServerUrl(data,callback);
1881+
}
18551882
}
1856-
}else{
1883+
}else if(sd.para.use_app_track === 'mui'){
1884+
if(_.isObject(window.plus) && window.plus.SDAnalytics && window.plus.SDAnalytics.trackH5Event){
1885+
window.plus.SDAnalytics.trackH5Event(data);
1886+
}
1887+
} else{
18571888
this.prepareServerUrl(data,callback);
18581889
}
18591890
};
@@ -2006,6 +2037,18 @@ var saNewUser = {
20062037
checkIsFirstLatest: function() {
20072038
var url_domain = _.info.pageProp.url_domain;
20082039
var referrer_domain = _.info.pageProp.referrer_domain;
2040+
2041+
//去除详叔的坑,utm_source相关
2042+
var latest_utms = ['$utm_source','$utm_medium', '$utm_campaign', '$utm_content', '$utm_term'];
2043+
var props = store.getProps();
2044+
for(var i =0;i<latest_utms.length;i++){
2045+
if(latest_utms[i] in props){
2046+
delete props[latest_utms[i]];
2047+
}
2048+
}
2049+
store.setProps(props,true);
2050+
2051+
20092052
// 判断最近一次,如果前向地址跟自己域名一致,且cookie中取不到值,认为有异常
20102053
// 最近一次站外前向地址,如果域名不一致,就register为latest
20112054
if(url_domain !== referrer_domain){

src/sensorsdata.full.js

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ var ObjProto = Object.prototype;
139139
var slice = ArrayProto.slice;
140140
var toString = ObjProto.toString;
141141
var hasOwnProperty = ObjProto.hasOwnProperty;
142-
var LIB_VERSION = '1.9.2';
142+
var LIB_VERSION = '1.9.4';
143143

144144
sd.lib_version = LIB_VERSION;
145145

@@ -1652,12 +1652,37 @@ _.jssdkDebug = function(recevie_prop,has_prop){
16521652
}
16531653
}
16541654
};
1655+
_.strToUnicode = function(str){
1656+
if(typeof str !== 'string'){
1657+
logger.info('转换unicode错误',str);
1658+
return str;
1659+
}
1660+
var nstr = '';
1661+
for(var i = 0; i<str.length; i++){
1662+
nstr += '\\'+str.charCodeAt(i).toString(16);
1663+
}
1664+
return nstr;
1665+
};
16551666

16561667
_.querySelectorAll = function(val){
1668+
16571669
if(typeof val !== 'string'){
1658-
logger.info('错误',val);
1670+
logger.info('选择器错误',val);
16591671
return [];
16601672
}
1673+
// 替换纯数字的id
1674+
var sp = val.split(' ');
1675+
if(sp.length === 1){
1676+
if(/^#\d+$/.test(sp[0])){
1677+
val = '#' + _.strToUnicode(sp[0].slice(1));
1678+
}
1679+
}else{
1680+
if(/^#\d+$/.test(sp[0])){
1681+
sp[0] = '#' + _.strToUnicode(sp[0].slice(1));
1682+
val = sp.join(' ');
1683+
}
1684+
}
1685+
16611686
try{
16621687
return document.querySelectorAll(val);
16631688
}catch(e){
@@ -1836,7 +1861,7 @@ sd.sendState.getSendCall = function(data, callback) {
18361861
data = JSON.stringify(data);
18371862
logger.info(originData);
18381863
// 打通app传数据给app
1839-
if(sd.para.use_app_track){
1864+
if(sd.para.use_app_track === true || sd.para.use_app_track === 'only'){
18401865
if((typeof SensorsData_APP_JS_Bridge === 'object') && SensorsData_APP_JS_Bridge.sensorsdata_track){
18411866
SensorsData_APP_JS_Bridge.sensorsdata_track(data);
18421867
(typeof callback === 'function') && callback();
@@ -1848,9 +1873,15 @@ sd.sendState.getSendCall = function(data, callback) {
18481873
iframe = null;
18491874
(typeof callback === 'function') && callback();
18501875
}else{
1851-
this.prepareServerUrl(data,callback);
1876+
if(sd.para.use_app_track === true){
1877+
this.prepareServerUrl(data,callback);
1878+
}
18521879
}
1853-
}else{
1880+
}else if(sd.para.use_app_track === 'mui'){
1881+
if(_.isObject(window.plus) && window.plus.SDAnalytics && window.plus.SDAnalytics.trackH5Event){
1882+
window.plus.SDAnalytics.trackH5Event(data);
1883+
}
1884+
} else{
18541885
this.prepareServerUrl(data,callback);
18551886
}
18561887
};
@@ -2003,6 +2034,18 @@ var saNewUser = {
20032034
checkIsFirstLatest: function() {
20042035
var url_domain = _.info.pageProp.url_domain;
20052036
var referrer_domain = _.info.pageProp.referrer_domain;
2037+
2038+
//去除详叔的坑,utm_source相关
2039+
var latest_utms = ['$utm_source','$utm_medium', '$utm_campaign', '$utm_content', '$utm_term'];
2040+
var props = store.getProps();
2041+
for(var i =0;i<latest_utms.length;i++){
2042+
if(latest_utms[i] in props){
2043+
delete props[latest_utms[i]];
2044+
}
2045+
}
2046+
store.setProps(props,true);
2047+
2048+
20062049
// 判断最近一次,如果前向地址跟自己域名一致,且cookie中取不到值,认为有异常
20072050
// 最近一次站外前向地址,如果域名不一致,就register为latest
20082051
if(url_domain !== referrer_domain){

version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
var sensorsdata_js_sdk_latest_version = '1.9.2';
1+
var sensorsdata_js_sdk_latest_version = '1.9.4';

vtrack.min.js

Lines changed: 6 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)