Skip to content

Commit f1b32f7

Browse files
author
shengyonggen
committed
增加app打通监测是否允许
1 parent 8a70cfa commit f1b32f7

File tree

6 files changed

+136
-34
lines changed

6 files changed

+136
-34
lines changed

1161517641246_.pic.jpg

-32.6 KB
Binary file not shown.

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: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1732,16 +1732,50 @@ sd.sendState.getSendCall = function(data, callback) {
17321732
logger.info(originData);
17331733
// 打通app传数据给app
17341734
if(sd.para.use_app_track === true || sd.para.use_app_track === 'only'){
1735-
if((typeof SensorsData_APP_JS_Bridge === 'object') && SensorsData_APP_JS_Bridge.sensorsdata_track){
1736-
SensorsData_APP_JS_Bridge.sensorsdata_track(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)));
1737-
(typeof callback === 'function') && callback();
1738-
}else if(/sa-sdk-ios/.test(navigator.userAgent) && !window.MSStream){
1739-
var iframe = document.createElement('iframe');
1740-
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1741-
document.documentElement.appendChild(iframe);
1742-
iframe.parentNode.removeChild(iframe);
1743-
iframe = null;
1744-
(typeof callback === 'function') && callback();
1735+
if((typeof SensorsData_APP_JS_Bridge === 'object') && (SensorsData_APP_JS_Bridge.sensorsdata_verify || SensorsData_APP_JS_Bridge.sensorsdata_track)){
1736+
// 如果有新版方式,优先用新版
1737+
if(SensorsData_APP_JS_Bridge.sensorsdata_verify){
1738+
// 如果校验通过则结束,不通过则降级改成h5继续发送
1739+
if(!SensorsData_APP_JS_Bridge.sensorsdata_verify(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)))){
1740+
this.prepareServerUrl(data,callback);
1741+
}else{
1742+
(typeof callback === 'function') && callback();
1743+
}
1744+
}else{
1745+
SensorsData_APP_JS_Bridge.sensorsdata_track(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)));
1746+
(typeof callback === 'function') && callback();
1747+
}
1748+
}else if((/sensors-verify/.test(navigator.userAgent) || /sa-sdk-ios/.test(navigator.userAgent)) && !window.MSStream){
1749+
var iframe = null;
1750+
if(/sensors-verify/.test(navigator.userAgent)){
1751+
var match = navigator.userAgent.match(/sensors-verify\/([^\s]+)/);
1752+
if(match && match[0] && (typeof match[1] === 'string') && (match[1].split('?').length === 2)){
1753+
match = match[1].split('?');
1754+
var hostname = null;
1755+
var project = null;
1756+
try{
1757+
hostname = _.url('hostname',sd.para.server_url);
1758+
project = _.url('?project',sd.para.server_url) || 'default';
1759+
}catch(e){};
1760+
if (hostname && hostname === match[0] && project && project === match[1]) {
1761+
iframe = document.createElement('iframe');
1762+
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1763+
document.documentElement.appendChild(iframe);
1764+
iframe.parentNode.removeChild(iframe);
1765+
iframe = null;
1766+
(typeof callback === 'function') && callback();
1767+
}else{
1768+
this.prepareServerUrl(data,callback);
1769+
}
1770+
}
1771+
}else{
1772+
iframe = document.createElement('iframe');
1773+
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1774+
document.documentElement.appendChild(iframe);
1775+
iframe.parentNode.removeChild(iframe);
1776+
iframe = null;
1777+
(typeof callback === 'function') && callback();
1778+
}
17451779
}else{
17461780
if(sd.para.use_app_track === true){
17471781
this.prepareServerUrl(data,callback);

src/sensorsdata.full.amd.js

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1867,16 +1867,50 @@ sd.sendState.getSendCall = function(data, callback) {
18671867
logger.info(originData);
18681868
// 打通app传数据给app
18691869
if(sd.para.use_app_track === true || sd.para.use_app_track === 'only'){
1870-
if((typeof SensorsData_APP_JS_Bridge === 'object') && SensorsData_APP_JS_Bridge.sensorsdata_track){
1871-
SensorsData_APP_JS_Bridge.sensorsdata_track(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)));
1872-
(typeof callback === 'function') && callback();
1873-
}else if(/sa-sdk-ios/.test(navigator.userAgent) && !window.MSStream){
1874-
var iframe = document.createElement('iframe');
1875-
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1876-
document.documentElement.appendChild(iframe);
1877-
iframe.parentNode.removeChild(iframe);
1878-
iframe = null;
1879-
(typeof callback === 'function') && callback();
1870+
if((typeof SensorsData_APP_JS_Bridge === 'object') && (SensorsData_APP_JS_Bridge.sensorsdata_verify || SensorsData_APP_JS_Bridge.sensorsdata_track)){
1871+
// 如果有新版方式,优先用新版
1872+
if(SensorsData_APP_JS_Bridge.sensorsdata_verify){
1873+
// 如果校验通过则结束,不通过则降级改成h5继续发送
1874+
if(!SensorsData_APP_JS_Bridge.sensorsdata_verify(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)))){
1875+
this.prepareServerUrl(data,callback);
1876+
}else{
1877+
(typeof callback === 'function') && callback();
1878+
}
1879+
}else{
1880+
SensorsData_APP_JS_Bridge.sensorsdata_track(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)));
1881+
(typeof callback === 'function') && callback();
1882+
}
1883+
}else if((/sensors-verify/.test(navigator.userAgent) || /sa-sdk-ios/.test(navigator.userAgent)) && !window.MSStream){
1884+
var iframe = null;
1885+
if(/sensors-verify/.test(navigator.userAgent)){
1886+
var match = navigator.userAgent.match(/sensors-verify\/([^\s]+)/);
1887+
if(match && match[0] && (typeof match[1] === 'string') && (match[1].split('?').length === 2)){
1888+
match = match[1].split('?');
1889+
var hostname = null;
1890+
var project = null;
1891+
try{
1892+
hostname = _.url('hostname',sd.para.server_url);
1893+
project = _.url('?project',sd.para.server_url) || 'default';
1894+
}catch(e){};
1895+
if (hostname && hostname === match[0] && project && project === match[1]) {
1896+
iframe = document.createElement('iframe');
1897+
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1898+
document.documentElement.appendChild(iframe);
1899+
iframe.parentNode.removeChild(iframe);
1900+
iframe = null;
1901+
(typeof callback === 'function') && callback();
1902+
}else{
1903+
this.prepareServerUrl(data,callback);
1904+
}
1905+
}
1906+
}else{
1907+
iframe = document.createElement('iframe');
1908+
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1909+
document.documentElement.appendChild(iframe);
1910+
iframe.parentNode.removeChild(iframe);
1911+
iframe = null;
1912+
(typeof callback === 'function') && callback();
1913+
}
18801914
}else{
18811915
if(sd.para.use_app_track === true){
18821916
this.prepareServerUrl(data,callback);

src/sensorsdata.full.js

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1864,16 +1864,50 @@ sd.sendState.getSendCall = function(data, callback) {
18641864
logger.info(originData);
18651865
// 打通app传数据给app
18661866
if(sd.para.use_app_track === true || sd.para.use_app_track === 'only'){
1867-
if((typeof SensorsData_APP_JS_Bridge === 'object') && SensorsData_APP_JS_Bridge.sensorsdata_track){
1868-
SensorsData_APP_JS_Bridge.sensorsdata_track(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)));
1869-
(typeof callback === 'function') && callback();
1870-
}else if(/sa-sdk-ios/.test(navigator.userAgent) && !window.MSStream){
1871-
var iframe = document.createElement('iframe');
1872-
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1873-
document.documentElement.appendChild(iframe);
1874-
iframe.parentNode.removeChild(iframe);
1875-
iframe = null;
1876-
(typeof callback === 'function') && callback();
1867+
if((typeof SensorsData_APP_JS_Bridge === 'object') && (SensorsData_APP_JS_Bridge.sensorsdata_verify || SensorsData_APP_JS_Bridge.sensorsdata_track)){
1868+
// 如果有新版方式,优先用新版
1869+
if(SensorsData_APP_JS_Bridge.sensorsdata_verify){
1870+
// 如果校验通过则结束,不通过则降级改成h5继续发送
1871+
if(!SensorsData_APP_JS_Bridge.sensorsdata_verify(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)))){
1872+
this.prepareServerUrl(data,callback);
1873+
}else{
1874+
(typeof callback === 'function') && callback();
1875+
}
1876+
}else{
1877+
SensorsData_APP_JS_Bridge.sensorsdata_track(JSON.stringify(_.extend({server_url:sd.para.server_url},originData)));
1878+
(typeof callback === 'function') && callback();
1879+
}
1880+
}else if((/sensors-verify/.test(navigator.userAgent) || /sa-sdk-ios/.test(navigator.userAgent)) && !window.MSStream){
1881+
var iframe = null;
1882+
if(/sensors-verify/.test(navigator.userAgent)){
1883+
var match = navigator.userAgent.match(/sensors-verify\/([^\s]+)/);
1884+
if(match && match[0] && (typeof match[1] === 'string') && (match[1].split('?').length === 2)){
1885+
match = match[1].split('?');
1886+
var hostname = null;
1887+
var project = null;
1888+
try{
1889+
hostname = _.url('hostname',sd.para.server_url);
1890+
project = _.url('?project',sd.para.server_url) || 'default';
1891+
}catch(e){};
1892+
if (hostname && hostname === match[0] && project && project === match[1]) {
1893+
iframe = document.createElement('iframe');
1894+
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1895+
document.documentElement.appendChild(iframe);
1896+
iframe.parentNode.removeChild(iframe);
1897+
iframe = null;
1898+
(typeof callback === 'function') && callback();
1899+
}else{
1900+
this.prepareServerUrl(data,callback);
1901+
}
1902+
}
1903+
}else{
1904+
iframe = document.createElement('iframe');
1905+
iframe.setAttribute('src', 'sensorsanalytics://trackEvent?event=' + encodeURIComponent(JSON.stringify(_.extend({server_url:sd.para.server_url},originData))));
1906+
document.documentElement.appendChild(iframe);
1907+
iframe.parentNode.removeChild(iframe);
1908+
iframe = null;
1909+
(typeof callback === 'function') && callback();
1910+
}
18771911
}else{
18781912
if(sd.para.use_app_track === true){
18791913
this.prepareServerUrl(data,callback);

0 commit comments

Comments
 (0)