處理網頁檢視
瞭解如何在行動應用程式中使用WebViews處理資料收集。
先決條件
- 成功建立並執行應用程式,且已安裝並設定SDK。
學習目標
在本課程中,您將會:
- 瞭解應用程式中WebViews必須特別考量的原因。
- 瞭解避免追蹤問題所需的程式碼。
可能的追蹤問題
如果您從應用程式的原生部分和應用程式內的WebView傳送資料,每個部分都會產生自己的Experience CloudID (ECID),導致中斷連線的點選和膨脹的造訪/訪客資料。 有關ECID的更多資訊可在以下連結中找到: ECID概觀.
若要解決該不良情況,您必須將使用者的ECID從應用程式的原生部分傳遞至您可能會想要在應用程式中使用的WebView。
WebView中使用的AEP Edge Identity擴充功能會收集目前的ECID並將其新增至URL,而非傳送要求給Adobe索取新ID。 實作接著會使用此ECID來要求URL。
實作
瀏覽至 Luma > Luma > Views > Info > TermsOfServiceSheet,然後找到 func loadUrl()
中的函式 final class SwiftUIWebViewModel: ObservableObject
類別。 新增下列呼叫以處理Web檢視:
// Handle web view
AEPEdgeIdentity.Identity.getUrlVariables {(urlVariables, error) in
if let error = error {
print("Error with Webview", error)
return;
}
if let urlVariables: String = urlVariables {
urlString.append("?" + urlVariables)
guard let url = URL(string: urlString) else {
return
}
DispatchQueue.main.async {
self.webView.load(URLRequest(url: url))
}
}
Logger.aepMobileSDK.info("Successfully retrieved urlVariables for WebView, final URL: \(urlString)")
}
此 AEPEdgeIdentity.Identity.getUrlVariables
API會設定URL的變數,以包含所有相關資訊,例如ECID等。 在此範例中,您使用的是本機檔案,但相同的概念適用於遠端頁面。
您可以進一步瞭解 Identity.getUrlVariables
中的API Edge Network身分擴充功能API參考指南.
驗證
若要執行程式碼:
-
檢閱 設定指示 區段來將您的模擬器或裝置連線到Assurance。
-
前往 設定 在應用程式中
-
點選 View… 按鈕以顯示 Terms of Use.
+-------------+ | img-md | +=============+ | w-300 | +-------------+ | | +-------------++-------------+ | img-md |
w-300 -
在Assurance UI中,尋找 邊緣身分回應URL變數 來自的事件 com.adobe.griffon.mobile 廠商。
-
選取事件並檢閱 urlvariable 中的欄位 ACPExtensionEventData 物件,確認URL中存在下列引數:
adobe_mc
,mcmid
、和mcorgid
.範例
urvariables
欄位如下所示:-
原始(含逸出字元)
code language-html adobe_mc=TS%3D1636526122%7CMCMID%3D79076670946787530005526183384271520749%7CMCORGID%3D7ABB3E6A5A7491460A495D61%40AdobeOrg
-
美化
code language-html adobe_mc=TS=1636526122|MCMID=79076670946787530005526183384271520749|MCORGID=7ABB3E6A5A7491460A495D61@AdobeOrg
-
很遺憾,對Web工作階段進行偵錯受到限制。 例如,您無法在瀏覽器中使用Adobe Experience Platform Debugger來繼續偵錯Webview工作階段。
VisitorAPI.js
.下一步: 身分