Skip to content

Commit 10204c0

Browse files
authored
Merge pull request #2 from sensorsdata/v1.6
增加app和js打通功能
2 parents 635359e + c9b5e90 commit 10204c0

File tree

6 files changed

+102
-18
lines changed

6 files changed

+102
-18
lines changed

product/sensorsdata.js

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
// 防止重复引入
99
sd = window[sd];
10+
sd._t = sd._t || 1 * new Date();
1011

1112
if ((typeof sd !== 'function' && typeof sd !== 'object') || sd.has_load_sdk) {
1213
return false;
@@ -613,7 +614,7 @@ if(typeof JSON!=='object'){JSON={}}(function(){'use strict';var rx_one=/^[\],:{}
613614
, slice = ArrayProto.slice
614615
, toString = ObjProto.toString
615616
, hasOwnProperty = ObjProto.hasOwnProperty
616-
, LIB_VERSION = '1.5.11';
617+
, LIB_VERSION = '1.6';
617618

618619
sd.lib_version = LIB_VERSION;
619620

@@ -2134,12 +2135,53 @@ saEvent.send = function(p, callback) {
21342135
};
21352136

21362137

2138+
function app_js_bridge(){
2139+
var app_info = null;
2140+
var todo = null;
2141+
function setAppInfo(data){
2142+
app_info = data;
2143+
if(todo){
2144+
todo(data);
2145+
}
2146+
}
2147+
//android
2148+
function getAndroid(){
2149+
if(typeof window.SensorsData_APP_JS_Bridge === 'object' && window.SensorsData_APP_JS_Bridge.sensorsdata_call_app){
2150+
app_info = SensorsData_APP_JS_Bridge.sensorsdata_call_app();
2151+
}
2152+
}
2153+
//ios
2154+
window.sensorsdata_app_js_bridge_call_js = function(data){
2155+
setAppInfo(data);
2156+
};
2157+
sd.getAppStatus = function(func){
2158+
//先获取能直接取到的安卓,ios是异步的不需要操作
2159+
getAndroid();
2160+
// 不传参数,直接返回数据
2161+
if(!func){
2162+
return app_info;
2163+
}else{
2164+
//如果传参数,保存参数。如果有数据直接执行,没数据时保存
2165+
if(app_info === null){
2166+
todo = func;
2167+
}else{
2168+
func(app_info);
2169+
}
2170+
}
2171+
};
2172+
};
2173+
2174+
2175+
21372176
sd.init = function() {
2177+
21382178
// 防止爬虫等异常情况
21392179
/*
21402180
if(!_.hasStandardBrowserEnviroment()){
21412181
return false;
21422182
}*/
2183+
app_js_bridge();
2184+
21432185
// 初始化referrer等页面属性 1.6
21442186
_.info.initPage();
21452187

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: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1531,12 +1531,53 @@ saEvent.send = function(p, callback) {
15311531
};
15321532

15331533

1534+
function app_js_bridge(){
1535+
var app_info = null;
1536+
var todo = null;
1537+
function setAppInfo(data){
1538+
app_info = data;
1539+
if(todo){
1540+
todo(data);
1541+
}
1542+
}
1543+
//android
1544+
function getAndroid(){
1545+
if(typeof window.SensorsData_APP_JS_Bridge === 'object' && window.SensorsData_APP_JS_Bridge.sensorsdata_call_app){
1546+
app_info = SensorsData_APP_JS_Bridge.sensorsdata_call_app();
1547+
}
1548+
}
1549+
//ios
1550+
window.sensorsdata_app_js_bridge_call_js = function(data){
1551+
setAppInfo(data);
1552+
};
1553+
sd.getAppStatus = function(func){
1554+
//先获取能直接取到的安卓,ios是异步的不需要操作
1555+
getAndroid();
1556+
// 不传参数,直接返回数据
1557+
if(!func){
1558+
return app_info;
1559+
}else{
1560+
//如果传参数,保存参数。如果有数据直接执行,没数据时保存
1561+
if(app_info === null){
1562+
todo = func;
1563+
}else{
1564+
func(app_info);
1565+
}
1566+
}
1567+
};
1568+
};
1569+
1570+
1571+
15341572
sd.init = function() {
1573+
15351574
// 防止爬虫等异常情况
15361575
/*
15371576
if(!_.hasStandardBrowserEnviroment()){
15381577
return false;
15391578
}*/
1579+
app_js_bridge();
1580+
15401581
// 初始化referrer等页面属性 1.6
15411582
_.info.initPage();
15421583

src/sensorsdata.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,23 @@
77

88
// 防止重复引入
99
sd = window[sd];
10+
sd._t = sd._t || 1 * new Date();
1011

1112
if ((typeof sd !== 'function' && typeof sd !== 'object') || sd.has_load_sdk) {
1213
return false;
1314
}
1415
sd.has_load_sdk = true;
1516

16-
@@include('src/json2.js')
17+
@@include('sa-sdk-javascript/src/json2.js')
1718

1819
@@if (sensorsdata_mode === 'vtrack') {
19-
@@include('src/promise.min.js')
20+
@@include('sa-sdk-javascript/src/promise.min.js')
2021
}
2122

2223
var _ = sd._ = {};
2324

2425
@@if (sensorsdata_mode === 'vtrack') {
25-
@@include('src/jquery.js')
26+
@@include('sa-sdk-javascript/src/jquery.js')
2627
sd.$ = $;
2728

2829
sd.customEv = $({});
@@ -71,12 +72,12 @@
7172
}
7273

7374
// 是否需要给可视化埋点加前缀
74-
@@include('src/detector.min.js')
75+
@@include('sa-sdk-javascript/src/detector.min.js')
7576

76-
@@include('src/sdk.js')
77+
@@include('sa-sdk-javascript/src/sdk.js')
7778

7879
@@if (sensorsdata_mode === 'vtrack') {
79-
@@include('src/vtrack.sdk.js')
80+
@@include('sa-sdk-javascript/src/vtrack.sdk.js')
8081
}
8182

8283
@@if (sensorsdata_mode !== 'vtrack') {

src/vendor.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@
1616
var SAS = sdkMain.SAS;
1717

1818
var doT = {};
19-
@@include('src/template.js')
19+
@@include('sa-sdk-javascript/src/template.js')
2020
sd.template = doT.gtemplate;
2121

2222
//json格式化
2323

24-
@@include('src/jsontree.js')
24+
@@include('sa-sdk-javascript/src/jsontree.js')
2525
sd.JSONTree = JSONTree;
2626

2727

2828
// suggest
29-
@@include('src/suggest.js')
29+
@@include('sa-sdk-javascript/src/suggest.js')
3030

3131
var Utils = {};
3232
Utils.Formatting = {
@@ -52,7 +52,7 @@
5252
};
5353

5454

55-
@@include('src/modal.js')
55+
@@include('sa-sdk-javascript/src/modal.js')
5656

5757
$.fn.gSelectBox = function() {
5858
return $(this).each(function(a, b) {

vtrack.min.js

Lines changed: 5 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)