整合了神策 Web JS SDK 的 H5 頁面,在嵌入到 App 後,H5 內的事件可以透過 App 進行傳送,事件傳送前會增加上 App 採集到的預設屬性。該功能預設是關閉狀態,如果需要開啟,需要在 App 和 H5 端同時進行設定。

Android 端開啟方式

版本要求

  • Android SDK v4.0.7 及以上版本
  • Android 外掛程式 v3.2.4 及以上版本

SDK 初始化前,呼叫 SAConfigOptions 物件的 enableJavaScriptBridge() 方法

SAConfigOptions saConfigOptions = new SAConfigOptions(SA_SERVER_URL);
···
// 開啟 App 打通 H5
// isSupportJellyBean:是否支援 API level 16 及以下的版本,16 及以下版本 API 中,addJavascriptInterface 有安全漏洞,需要謹慎使用。
saConfigOptions.enableJavaScriptBridge(true);

// 其他設定
···
SensorsDataAPI.startWithConfigOptions(this, saConfigOptions);
JAVA

isSupportJellyBean:是否支援 API level 16 及以下的版本,16 及以下版本 API 中,addJavascriptInterface 有安全漏洞,需要謹慎使用。

iOS 端開啟方式

版本要求

iOS SDK v2.0.8 及以上版本

SDK 初始化前,將 SAConfigOptions 實體的 enableJavaScriptBridge 屬性設定為 YES

SAConfigOptions *options = [[SAConfigOptions alloc] initWithServerURL:SA_SERVER_URL launchOptions:launchOptions];

// 開啟 App 打通 H5
options.enableJavaScriptBridge = YES;

// 其他設定
    
[SensorsAnalyticsSDK startWithConfigOptions:option];
CODE

H5 端開啟方式

版本要求

Web JS SDK v1.15.10 及以上版本

在 SDK 初始化程式碼中,增加 app_js_bridge:true 選項

...
({
	sdk_url:'./sensorsdata.min.js',
	heatmap_url: './heatmap.min.js',
	server_url:'數據接收網址',
	name: 'sensors',
	app_js_bridge:true,

	// 其他設定

});
...
JS

預設情況下,只有 App 數據接收網址與 H5 相同時,才可以打通成功。用戶也透過 white_list 設定可以打通的 App 數據接收網址列表,H5 將與列表中所有接收網址進行打通

...
({
	sdk_url:'./sensorsdata.min.js',
	heatmap_url: './heatmap.min.js',
	server_url:'數據接收網址',
	name: 'sensors',
	app_js_bridge: {
		white_list: ['server_url1','server_url2',....];
	}

 	// 其他設定

});
...
JS

驗證打通是否成功

App 與H5 打通後,App SDK 會對 Web JS SDK 採集的數據進行處理。相同的欄位進行覆蓋,並新增以下欄位:

$wifi //是否 Wifi
$network_type //網路類型
$carrier //營運商名稱
$app_version //應用版本
$device_id //裝置 ID

如果有 H5 事件中含有 $wifi,$network_type$app_version$carrier 等欄位,說明 App 和 H5 打通成功。