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