處理網頁檢視
瞭解如何在行動應用程式中使用WebViews處理資料收集。
先決條件
- 成功建立並執行應用程式,且已安裝並設定SDK。
學習目標
在本課程中,您將會:
- 瞭解應用程式中WebViews必須特別考量的原因。
- 瞭解避免追蹤問題所需的程式碼。
可能的追蹤問題
如果您從應用程式的原生部分和應用程式內的WebView傳送資料,每個部分都會產生自己的Experience CloudID (ECID),導致中斷連線的點選和膨脹的造訪/訪客資料。 有關ECID的詳細資訊,請參閱ECID概觀。
若要解決該不良情況,您必須將使用者的ECID從應用程式的原生部分傳遞至您可能會想要在應用程式中使用的WebView。
WebView中使用的AEP Edge身分擴充功能會收集目前的ECID並將其新增至URL,而非傳送要求給Adobe索取新ID。 實作接著會使用此ECID來要求URL。
實作
導覽至 Luma > Luma > Views > Info > TermsOfServiceSheet,並在final class SwiftUIWebViewModel: ObservableObject
類別中找到func loadUrl()
函式。 新增下列呼叫以處理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等。 在此範例中,您使用的是本機檔案,但相同的概念適用於遠端頁面。
您可以在Edge Network延伸模組API參考指南中進一步瞭解Identity.getUrlVariables
API。
驗證
若要執行程式碼:
-
檢閱設定指示區段,將您的模擬器或裝置連線到Assurance。
-
前往應用程式中的 設定
-
點選 View… 按鈕以顯示 Terms of Use。
{width="300"} {width="300"}
-
在Assurance UI中,尋找 com.adobe.griffon.mobile 廠商的 Edge身分識別回應URL變數 事件。
-
選取事件並檢閱 ACPExtensionEventData 物件中的 urlvariable 欄位,確認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
時,支援透過這些URL引數連結訪客。下一個: 身分