文檔說明:本文檔內容為介紹當App記憶體在H5頁面時,H5資料應該如何上報?
1 H5橋接使用情境
1.1 如何將H5資料同時上報至H5應用和App應用?
情境舉例:
一個“春日”活動H5嵌入在多個App端,按照當前方式操作,可以滿足下述分析訴求:
App營運需要看到客戶在App內參加H5活動前後的完整鏈路資料。
H5活動營運需要看到H5在所有App端內的活動資料。
操作說明:
建立兩個應用:
一個App應用,該App有自己的Appkey_app
一個Web/H5應用,該Web/H5有自己的Appkey_h5
調用App內的attach介面,進行H5橋接
上報日誌:
App報一條日誌:
Appkey是App的“Appkey_app”
使用者帳號為App的使用者帳號
裝置ID為App的裝置ID
系統屬性為App的系統屬性
全域屬性是App內埋點的全域屬性
事件編碼和事件屬性為H5內的埋點
H5上報一條日誌:
Appkey是H5的“Appkey_h5”
使用者帳號為H5的使用者帳號
裝置ID為H5的裝置ID
系統屬性為H5的系統屬性
全域屬性是H5內埋點的全域屬性
事件編碼和事件屬性為H5內的埋點
1.2 如何將H5資料僅上報至唯一App應用中?
情境舉例:
由於技術架構,一部分頁面為H5技術結構,按照當前方式操作,可以滿足下述分析訴求:
App業務、營運和PD等可以在App資料內看到完整的全鏈路資料。
操作說明:
建立一個App應用,僅有一個Appkey_app
調用App內的attach介面,進行H5橋接
H5 Appkey設定為空白,並調用aplus-jsbridge-only等於true,關閉H5資料上報
上報日誌:
僅App報一條日誌:
Appkey是App的“Appkey_app”
使用者帳號為App的使用者帳號
裝置ID為App的裝置ID
系統屬性為App的系統屬性
全域屬性是App內埋點的全域屬性
事件編碼和事件屬性為H5內的埋點
1.3 如果將H5資料僅上報至H5應用中?
情境舉例:
App業務、營運和PD等不希望在App中看到H5的資料
操作說明:
建立兩個應用:
一個App應用,該App有自己的Appkey_app
一個Web/H5應用,該Web/H5有自己的Appkey_h5
不進行任何API的調用
上報日誌:
僅H5報一條日誌:
Appkey是H5的“Appkey_h5”
使用者帳號為H5的使用者帳號
裝置ID為H5的裝置ID
系統屬性為H5的系統屬性
全域屬性是H5內埋點的全域屬性
事件編碼和事件屬性為H5內的埋點
2 H5橋接原理說明

上述方式的前提為:
App整合QuickTrackingApp SDK
以及app內的H5整合QuickTracking H5 SDK
圖中表示當使用者觸發app中h5頁面上的button2時,會同時上報兩條日誌:
通過App SDK上報:上報的日誌中,appkey為app的appkey,全域屬性為app的全域屬性,事件編碼和事件屬性為h5中埋點的編碼和屬性。(圖中綠色箭頭)
通過H5 SDK上報:上報的日誌中,appkey為h5的appkey,全域屬性為h5的全域屬性,事件編碼和事件屬性為h5中埋點的編碼和屬性。(圖中黃色箭頭)
3 App橋接H5介面
iOS:預設關閉,只有調用下述API才能開啟
注意:iOS SPM版本1.3.0以下版本是預設自動橋接的,如果您升級,需要修改該邏輯
/**
* @brief H5橋接介面
*
* @param WebView WKWebView對象
* @warning
*
*/
+ (void)attach:(id)WebView;例:
#import <QTCommon/UMSpmHybrid.h>
WKWebView *webView=[[WKWebView alloc]init];
[UMSpmHybrid attach:webView];
[webView loadRequest:request];請注意:為了確保H5頁面載入事件上報的準確性,請務必在loadRequest之前調用attach方法。
4 H5 SDK上報日誌開關
控制黃色箭頭鏈路的開關API:
H5 SDK API:
SDK配置 | ||
aplus-jsbridge-only | true | 關閉H5的日誌發送(黃色箭頭) |
false(預設false) | 開啟H5的日誌發送(黃色箭頭) | |
aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['aplus-jsbridge-only', true]
});請注意:設定aplus-jsbridge-only為true之後,網頁連結中的utm參數不會自動識別為渠道參數,需要開發人員使用全域屬性的方式自行設定。
5 H5 全域屬性同步介面
在H5中設定關閉下述介面後,H5中通過aplus.appendMetaInfo中globalproperty或aplus.setMetaInfo中globalproperty設定的全域屬性將不會同步生效至App原生中。(該介面預設為true)
注意,該介面在qt_web_v2.0.12中支援,需搭配android 1.4.3.PX及以上版本,iOS 1.4.0.PX及以上版本使用。
aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['aplus-globalproperty-sync-enable', false] //關閉同步
});例如:預設情況下,在App中設定全域屬性「當前所在城市:北京」,在App內H5中設定全域屬性「當前所在城市:上海」,則在H5和App原生中觸發的事件的全域屬性都將為「當前所在城市:上海」。如果關閉該開關,則H5中設定的全域屬性不會同步到App原生中。
6 歷史文檔
注意:iOS SPM版本1.3.0以下版本是預設自動橋接的,如果您升級,需要修改該邏輯
H5橋接API介紹
在進行H5橋接前,需要首先整合App SDK和JS SDK,並初始化。
API介面
在iOS中,H5頁面上的事件統計協議預設跟隨Native上報。
Native頁面PV事件不上報
當對h5層進行統計時,若需要避免native層和h5層頁面PV事件重複上報,需要調用此函數。此函數調用後,SDK不會在對當前native層頁面PV事件進行統計及上報,避免和H5層頁面PV事件重複上報。
/**
* @brief 跳過當前頁面統計.
*
* @param PageObject 容器物件(自動擷取頁面時使用,預設手動可填nil)
* @param pageName 頁面名稱(手動設定頁面時使用,當設定自動擷取頁面時可填nil)
* @warning 建議在設定頁面之前調用此介面,調用後設定的native頁面將不發送資料
*
*/
+ (void)skipMe:(id)PageObject pageName:(NSString *)pageName;